一:什么是xtrabackup
XtraBackup 是一个用来备份 MySQL 的工具。对mysql的MYISAM引擎只支持完全备份,对innodb不仅支持完全备份,也支持增量备份,是一个全自动的工具。
二:安装xtrabackup
在percona公司官网上下载xtrabackup备份工具,
percona-xtrabackup-2.0.0-417 //支持mysql-5.5
rpm包进行安装
安装时有依赖性,
解决三个依赖性
1,libaio.1
2.perl-DBD-Mysql
3.linev.so.4 //需要从网上下载 yum源没有
三:xtrabackup 的使用
innobackupex是xtrabackup的一个perl脚本。
实战一:
完全备份数据库
innobackupex --user=root --password=*** /backup/ //备份的路径
一般情况下,在备份完成后,要做回滚,防止有的事务没有提交,解决不同步问题。
innobackupex --apply-log /backup/2015....
连接数据库刷新日志文件
flush logs;
备份二进制文件
cp /mysql-bin-00003 /backup/
mysqlbinlog mysql-bin-00004 > abc.sql
模拟数据库损坏
rm -fr /mydata/data //mysql的数据文件
此时关闭 和 开启服务异常
killall mysqld
还原数据库
还原时不要求数据库服务正常状态,但备份是要求,
innobackup --copy-back /backup/2015....
chown mysql.mysql /mydata/data -R
/etc/init.d/mysqld start
数据库正常
利用二进制文件,恢复数据(完全备份后对数据库还进行操作)
set sql_log_bin=0 //不记录二进制日志
source /backup/abc.sql
set sql_log_bin=1 //恢复正常
实战二:
xtarbackup 做增量备份
innobackup --incremental /backup --incremental-basedir=/backup/2016... 完全备份的文件
innobackupex --incremental /backup/ --incremental-basedir=/backup/2016-05-15_15-30-23/
第一次增量指向完全备份的文件
第二次增量备份的时后要指定第一次增量备份的文件
在损坏可以 完全+增量+二进制
恢复:
准备 只指定redo操作
有增量备份的时候只指定redo操作 因为完全没有提交操作而增量提交了事务
innobackupex --apply-log --redo-only /backup/2016-05-15_15-30-23/
innobackupex --apply-log --redo-only /backup/2016-05-15_15-30-23/ --incremental-dir=/backup/2016-05-15_15-35-25/
所有的提交动作到备份到完全备份文件上
还原时只用还原完全备份的文件 --copy-back
还原时 指定第一次完全的文件。在其后追加,和备份时不同
420 innobackupex --apply-log -redo-only /backup/2016-05-15_16-05-22/ --incremental-dir=/backup/2016-05-15_16-13-46/
421 ls
422 rm -fr *
423 innobackupex --copy-back /backup/2016-05-15_16-05-22/
424 ls
425 chown mysql.mysql
426 chown mysql.mysql . -R
427 mysqlls
428 ls
429 rm -fr *
430 innobackupex --copy-back /backup/2016-05-15_16-05-22/
431 ls
432 chown mysql.mysql . -R
433 killall mysqld
434 /etc/init.d/mysqld start
435 mysql
原文地址:http://llliangxu.blog.51cto.com/10858828/1774159