xtrabackup备份和还原
基础信息
1) CentOS 7
2) MySQL 5.7.12
3) 数据量4.4G
使用mysqldump对4.4G的数据导出->导入所需时间>60分钟,也可能是我方式方法不对,导入时间消耗长。
- xtrabackup介绍
xtrabackup一个开源免费的工具,用于对MySQL数据库的备份和还原。它还有一个用perl写的封装脚本,可以提供更多高级功能(如:流、增量、压缩和多线程备份操作)。
xtrabackup工作方式是后台线程不断追踪InnoDB日志文件尾部,然后复制InnoDB数据文件,InnoDB内有事务日志,可保证所有数据文件一致性。 - xtrabackup 安装
xtrabackup当前最新版本为2.4.4,支持MySQL server 5.7.13
官网地址:https://www.percona.com
使用percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm #yum install libev #rpm -ivh ppercona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm # xtrabackup --version xtrabackup version 2.4.4 based on MySQL server 5.7.13 Linux (x86_64) (revision id: df58cf2)
- xtrabackup备份
#innobackupex --defaults-file=/opt/mysql/my.cnf --user=root --password=123456 --socket=/opt/mysql/mysql.sock /opt/mysql/backup/ 看到100313 10:17:07 innobackupex: completed OK! 这类提示表示备份成功
当前4.4G的数据,耗时3分钟,ibdata1文件为78M,ibdata1文件的大小影响备份效率,文件越大xtrabackup备份所需时间越多,因需要扫描并追踪该文件中的事务日志。 - xtrabackup还原
#停掉mysql数据库 #rm -rf /opt/mysql/data/* #innobackupex --defaults-file=/opt/mysql/my.cnf --user=root --password=123456 --apply-log /opt/mysql/backup/2016-08-05_10-14-42 看到100313 10:51:44 innobackupex: completed OK! 表示成功 #innobackupex --defaults-file=/opt/mysql/my.cnf --user=root --password=123456 --copy-back /opt/mysql/backup/2016-08-05_10-14-42 看到100313 10:58:44 innobackupex: completed OK!表示成功 给/opt/mysql/data目录设置权限 #chown -R mysql:mysql /opt/mysql/data/ 启动数据库 #bin/mysqld --defaults-file=/opt/mysql/my.cnf --user=root 查看同步点 # cat xtrabackup_binlog_info mysql-bin.000005 26943181 #CHANGE MASTER TO MASTER_HOST='192.168.220.123',MASTER_USER='rep', MASTER_PASSWORD='admin2012',MASTER_LOG_FILE='mysql-bin.000005',MASTER_LOG_POS=26943181 #start slave; #show slave status\G
为了加快还原的速度,可加--use-memory=4G 参数
innobackupex --defaults-file=/opt/mysql/my.cnf --use-memory=4G --user=root --password=123456 --apply-log /opt/mysql/backup/2016-08-05_10-14-42
xtrabackup增量备份
所谓的增量,一定是在已有全量的基础之上的,不然是没有任何意义的。
当前以/opt/mysql/backup/2016-08-05_10-14-42 全量备份为基础 进行增量备份。innobackupex --defaults-file=/opt/mysql/my.cnf --incremental /opt/mysql/backup/inc1 --incremental-basedir=/opt/mysql/backup/2016-08-05_10-14-42 --user=root --password=123456 #160805 15:30:07 completed OK!
增量备份/opt/mysql/backup/inc1/2016-08-05_15-28-49
#查看全量备份时的检查点 # cat xtrabackup_checkpoints backup_type = log-applied from_lsn = 0 to_lsn = 5370086761 last_lsn = 5370086770 compact = 0 recover_binlog_info = 0 #查看增量备份时的检查点 # cat xtrabackup_checkpoints cat xtrabackup_checkpoints backup_type = incremental from_lsn = 5370086761 to_lsn = 5370087949 last_lsn = 5370087958 compact = 0 recover_binlog_info = 0
可看到增量备份的from_lsn 是全量备份的to_lsn
xtrabackup增量备份还原
将每一个增量备份文件上的事务提交#innobackupex --defaults-file=/opt/mysql/my.cnf --apply-log --redo-only /opt/mysql/backup/2016-08-05_10-14-42 --use-memory=1G --user=root --password=123456 #innobackupex --defaults-file=/opt/mysql/my.cnf --apply-log --redo-only /opt/mysql/backup/2016-08-05_10-14-42 --incremental-dir=/opt/mysql/backup/inc1/2016-08-05_15-28-49 --use-memory=1G --user=root --password=123456 #停掉mysql #删除/opt/mysql/data/ #innobackupex --defaults-file=/opt/mysql/my.cnf --user=root --password=123456 --copy-back /opt/mysql/backup/2016-08-05_10-14-42 #chown -R mysql:mysql /opt/mysql/data/ #启动mysql
作者:灼灼2015
链接:http://www.jianshu.com/p/d00c2ce5defd
因本文不是用Markdown格式的编辑器书写的,转换的页面可能不符合MIP标准。