您的位置:首页 > 其它

用XtraBackup备份工具实现完整备份、恢复和增量备份、恢复

2015-08-03 04:04 435 查看
xtrabackup是基于InnoDB存储引擎灾难恢复的。它复制InnoDB的数据文件,尽管数据文件在内部是非一致性的,但在执行灾难恢复时可以保证这些数据文件是一致的,并且可用。
xtrabackup是一款强大的在线热备份工具,备份过程中不锁库表,适合生产环境,并且由专业组织Percona提供(改进MySQL分支),主要包含两个组件 xtrabackup:C程序,支持InnoDB/XtraDB和innobackupex:以per脚本xtrabackup,还支持MyISAM.
使用XtraBackup备份工具实现完整备份、恢复和增量备份、恢复
* 备份数据时不锁表
* 只备份表记录,不备份表结构。
* 只能备份innodb 和 xtradb 存储引擎的表
innodb 支持事务和事务回滚
操作系统和使用的软件
操作系统: Red Hat Enterprise Linux Server release 6.5
备份软件:percona-xtrabackup-2.1.6-702.rhel6.x86_64.rpm
实验要求:使用XtraBackup备份工具实现完整备份、恢复和增量备份、恢复。
实验的命令和选项有哪些?
xtrabackup_56 选项
--target-dir=目录名 指定备份文件存放的目录
--backup 备份数据
--datadir=/var/lib/mysql 指定数据库目录的位置
--prepare 准备恢复数据
--incremental-basedir=目录名 增量备份时,指定参照的完整备份路径
--incremental-dir=目录名 准备恢复目录时,指定增量备份的路径

1.安装软件包:
[root@fanxh ~]# rpm -ivh percona-xtrabackup- 2.1.6-702.rhel6.x86_64.rpm
error: Failed dependencies:
perl(DBD::mysql) is needed by percona-xtrabackup-2.1.6-702.rhel6.x86_64
perl(Time::HiRes) is needed by percona-xtrbackup-2.1.6-702.rhel6.x86_64(安装的时候发现有依赖关系所以用YUM进行安装所需要的软件)
[root@fanxh ~]# yum -y install perl-Time-HiRes perl-DBD-MySQL (YUM安装依赖的软件包)

[root@fanxh ~]# rpm -ivh percona-xtrabackup-2.1.6-702.rhel6.x86_6

[root@fanxh ~]# rpm -ql percona-xtrabackup (查看安装的清单)

/usr/bin/innobackupex
/usr/bin/innobackupex-1.5.1
/usr/bin/xbcrypt
/usr/bin/xbstream
/usr/bin/xtrabackup
/usr/bin/xtrabackup_55
/usr/bin/xtrabackup_56
/usr/share/doc/percona-xtrabackup-2.1.6
/usr/share/doc/percona-xtrabackup-2.1.6/COPYING

2.完整备份和完整恢复
完整备份的配置:做完整备份是首先创建一个文件夹用来指定备份文件存放的目录。
[root@fanxh ~]# mkdir /fanxhdir
[root@fanxh ~]# xtrabackup_56 --backup --datadir=/var/lib/mysql/ --target- dir=/fanxhdir/ (备份完成)

完整恢复数据的配置:
[root@fanxh ~]#xtrabackup_56 --prepare --datadir=/var/lib/mysql --target-dir=/fanxhdir
[root@fanxh ~]#cp /fanxhdir/数据库/文件 /var/lib/mysql/数据库/
[root@fanxh ~]# service mysql restart

3.增量备份和增量恢复

增量备份的配置:* 事先要有一次完整备份,这样在增量备份时,才会知道那些数据是新的。
[root@fanxh ~]# mkdir -p /bakup/one(完整备份)
[root@fanxh ~]# xtrabackup_56 --backup --datadir=/var/lib/mysql --target-dir=/bakup/one

[root@fanxh ~]# mkdir -p /bakup/two (增量备份)

[root@fanxh ~]# xtrabackup_56 --backup --datadir=/var/lib/mysql --target-dir=/bakup/two --incremental-basedir=/bakup/one

[root@fanxh ~]# mkdir -p /bakup/three(增量备份)
[root@fanxh ~]# xtrabackup_56 --backup --datadir=/var/lib/mysql --target-dir=/bakup/three --incremental-basedir=/bakup/two

增量恢复的配置:

[root@fanxh ~]#xtrabackup_56 --prepare --datadir=/var/lib/mysql --target-dir=/bakup/one (完整恢复)

[root@fanxh ~]#xtrabackup_56 --prepare --datadir=/var/lib/mysql --target-dir=/bakup/one --incremental-dir=/bakup/two (增量恢复)

[root@fanxh ~]#xtrabackup_56 --prepare --datadir=/var/lib/mysql --target-dir=/bakup/one --incremental-dir=/bakup/three (增量恢复)

[root@fanxh ~]#cp /bakup/one/数据库/文件 /var/lib/mysql/数据库/

[root@fanxh ~]# service mysql restart
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息