[Mysql] mysql数据库使用innobackupex和mysqldump备份恢复的对比


本文总阅读量

1、查看原库数据文件大小:

1
2
du -sh *|grep data
23G data

2、使用innodbackex备份数据

在percona官方下载xtrabackup软件,并解压

1
2
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/tarball/percona-xtrabackup-2.4.9-Linux-x86_64.tar.gz
tar -zxvf percona-xtrabackup-2.4.9-Linux-x86_64.tar.gz

开始执行备份,指定配置文件、用户名、密码、端口、备份的目录

1
./innobackupex --defaults-file=/etc/my.cnf --user=root --password=12345678 --port=3306 /data/

(总体耗时25分钟左右,备份文件大小23G)

3、采用innodbackex备份出来的数据去恢复,将数据文件拷贝到节点1,执行恢复操作:

先把事务日志恢复(–apply-log)

1
/data/soft/percona-xtrabackup/bin/innobackupex --defaults-file=/etc/my.cnf --user=root --password=12345678 --port=3306 --apply-log /data/2018-09-14_13-34-38

恢复数据之前需要清除数据目录下的所有数据:

1
rm -rf /data/mysql/data/*

开始恢复数据

1
/data/soft/percona-xtrabackup/bin/innobackupex --defaults-file=/etc/my.cnf --user=root --password=12345678 --port=3306 --copy-back --rsync /data/2018-09-14_13-34-38

数据恢复完成之后,删除datadir下的事务日志log文件(innodb引擎才会有)

1
2
shell > cd /data/mysql/data
shell > rm -rf ib_logfile*

设置数据目录权限

1
2
shell > chown -R mysql:mysql /data/mysql/data
shell > /data/mysql/bin/mysqld_safe --defaults-file=/data/mysql/etc/my.cnf &

启动节点1的mysql

1
/etc/init.d/mysql restart

恢复总体耗时(35分钟)

4、原库使用mysqldump方法备份一份数据,用于恢复节点2:

原库操作

1
/data/mysql/bin/mysqldump --all-databases --set-gtid-purged=ON --single-transaction -uroot -p12345678 > /db/test.dump

备份需要指定–set-gtid-purged=ON参数在备份文件中输出global.gtid_purged信息,
指定–single-transaction参数避免备份过程中产生锁
(备份耗时10分钟,备份文件大小11G)

5、将mysqldump备份出的数据拷贝到节点2,节点2进行恢复操作:

如果从库@@GLOBAL.GTID_EXECUTED值不为空需要执行reset master;

1
2
3
4
root@db 07:55:  [(none)]> stop group_replication;
Query OK, 0 rows affected (1.01 sec)
root@db 07:55: [(none)]> reset master;
Query OK, 0 rows affected (0.05 sec)

开始执行恢复

1
2
[root@dax-mysql-mha bin]# mysql -u root -p12345678 < /data/test.dump
mysql: [Warning] Using a password on the command line interface can be insecure.

总体耗时(60分钟左右)

6、关于使用mysqldump备份恢复和innobackupex备份恢复的比较:

1
2
3
数据文件目录大小23G情况下,mysqldump逻辑备份出来数据大小11G,备份耗时十分钟,恢复耗时一小时;
innobackupex物理备份备份出来数据大小23G,备份耗时25分钟,恢复耗时35分钟。
使用物理备份备份时间比逻辑备份时间较长,但恢复时间会小于逻辑备份时间,数据量比较大的情况下使用innobackupex会更好一点。
目录
  1. 1. 1、查看原库数据文件大小:
  2. 2. 2、使用innodbackex备份数据
  3. 3. 3、采用innodbackex备份出来的数据去恢复,将数据文件拷贝到节点1,执行恢复操作:
  4. 4. 4、原库使用mysqldump方法备份一份数据,用于恢复节点2:
  5. 5. 5、将mysqldump备份出的数据拷贝到节点2,节点2进行恢复操作:
  6. 6. 6、关于使用mysqldump备份恢复和innobackupex备份恢复的比较:

Proudly powered by Hexo and Theme by Lap
本站访客数人次
© 2020 zeven0707's blog