# on 10.10.16.10 $ curl https://repo.percona.com/percona/yum/release/centos/7/RPMS/x86_64/percona-xtrabackup-80-8.0.27-19.1.el7.x86_64.rpm $ yum install -y percona-xtrabackup-80-8.0.27-19.1.el7.x86_64.rpm $ xtrabackup --backup --target-dir=/tmp/mysql \ --datadir=/home/htdocs/mysql --user=root \ --password=root \ --host=127.0.0.1 \ --port=3307 \ --databases=school_last1 \ --use-memory=4G xtrabackup: recognized server arguments: --datadir=/var/lib/mysql --datadir=/home/htdocs/mysql xtrabackup: recognized client arguments: --backup=1 --target-dir=/tmp/mysql --user=root --password=* --host=127.0.0.1 --port=3307 --databases=school_last1 --use-memory=4G xtrabackup version 8.0.27-19 based on MySQL server 8.0.27 Linux (x86_64) (revision id: 50dbc8dadda) 230912 17:32:31 version_check Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_group=xtrabackup;host=127.0.0.1;port=3307' as 'root' (using password: YES). ... xtrabackup: Transaction log of lsn (79075768667) to (79076184216) was copied. 230912 17:37:57 completed OK! $ xtrabackup --apply-log-only --prepare --export --target-dir=/tmp/mysql
xtrabackup 工具参数:
–backup 将备份保存到 target-dir
—target-dir 指定备份目录路径
–datadir 数据库物理路径
–use-memory 导出时可使用的内存限制,默认:100MB
–databases 指定要备份数据库名
mysqldump 导出的sql文件近 6GB,xtrabackup 备份用时不到 6 分钟。
1 2 3 4 5 6 7 8
# on 10.10.16.10 $ mv school_last1-table-structure.sql import.sql discard.sql /tmp/mysql/ $ tar czvf school_last1.tar.gz /tmp/mysql $ ls -lah -rw-r--r--. 1 root root 3.4G 9月 13 09:52 school_last1.tar.gz $ du -d 1 -h 25G ./mysql $ scp /tmp/school_last1.tar.gz c79user@10.10.51.81:/tmp/
3. 还原数据库表结构
1 2
# on 10.10.51.81 $ mkdir /data1/mysql-bk && tar zxvf /tmp/school_last1.tar.gz -C /data1/mysql-bk
1 2 3 4 5 6
# on 10.10.51.81 mysql> create database school default character set utf8mb4 collate utf8mb4_general_ci; mysql> use school; mysql> source /data1/mysql-bk/tmp/mysql/school_last1-table-structure.sql; # 删除表空间 mysql> source /data1/mysql-bk/tmp/mysql/discard.sql;