您的位置:首页 > 数据库

percona-xtrabackup   备份

2015-07-13 16:49 399 查看
软件版本:percona-xtrabackup-2.2.10mysql-5.6.23 xtrabackup安装
2.全备及恢复(1)全备查看数据库
[root@local-dbopt]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 /bak/mysql/该语句将拷贝数据文件(由my.cnf里的变量datadir指定)至备份目录下(/bak/mysql/),注意:如果不指定--defaults-file,默认值为/etc/my.cnf。备份成功后,将在备份目录下创建一个时间戳目录(本例创建的目录为/bak/mysql/2015-07-08_18-52-43),在该目录下存放备份文件。
(2)恢复删除数据库test123,尝试恢复
恢复之前,要先关闭数据库,并且删除数据文件和日志文件。

[root@local-dbopt]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456--apply-log /bak/mysql/2015-07-08_18-52-43/[root@local-dbopt]# innobackupex --defaults-file=/etc/my.cnf --user=root--password=123456 --copy-back/bak/mysql/2015-07-08_18-52-43/恢复分为两个步骤:第1步是apply-log,为了加快速度,一般建议设置--use-memory,这个步骤完成之后,目录/bak/mysql/2015-07-08_18-52-43/下的备份文件已经准备就绪。第2步是copy-back,即把备份文件拷贝至原数据目录下。恢复完成之后,一定要记得检查数据目录的所有者和权限是否正确。

3.增量备份及恢复注意:innobackupex 增量备份仅针对InnoDB这类支持事务的引擎,对于MyISAM等引擎,则仍然是全备。(1)增量备份增量备份需要基于全备,我们已经有了一个全备(/bak/mysql/2015-07-08_18-52-43/),我们需要在该全备的基础上做增量备份。测试新建库,导入新数据,做增量备份。

[root@local-dbmysql]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456--incremental-basedir=/bak/mysql/2015-07-08_18-52-43/ --incremental /bak/mysql/
其中--incremental-basedir指向全备目录,--incremental指向增量备份的目录。上面语句执行成功之后,会在--incremental执行的目录下创建一个时间戳子目录(本例中为:/bak/mysql/2015-07-08_19-46-30),在该目录下存放着增量备份的所有文件。在备份目录下,有一个文件xtrabackup_checkpoints记录着备份信息,全备的信息如下:
基于该全备的增量备份的信息如下:
从上面可以看出,增量备份的from_lsn正好等于全备的to_lsn。那么,我们是否可以在增量备份的基础上再做增量备份呢?答案是肯定的,只要把--incremental-basedir执行上一次增量备份的目录即可,如下所示:[root@local-dbmysql]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456--incremental-basedir=/bak/mysql/2015-07-08_19-46-30/ --incremental /bak/mysql/
它的xtrabackup_checkpoints记录着备份信息如下:
可以看到,该增量备份的from_lsn是从上一次增量备份的to_lsn开始的。(2)恢复删除数据库test456,尝试恢复
恢复之前,要先关闭数据库,并且删除数据文件和日志文件。

增量备份的恢复比全备要复杂很多,第一步是在所有备份目录下重做已提交的日志,如:[root@local-dbmysql]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --apply-log --redo-only/bak/mysql/2015-07-08_18-52-43/[root@local-dbmysql]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --apply-log --redo-only/bak/mysql/2015-07-08_18-52-43/ --incremental-dir=/bak/mysql/2015-07-08_19-46-30/[root@local-dbmysql]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --apply-log --redo-only/bak/mysql/2015-07-08_18-52-43/ --incremental-dir=/bak/mysql/2015-07-08_21-01-19/其中/bak/mysql/2015-07-08_18-52-43/是指全备目录,/bak/mysql/2015-07-08_19-46-30/是指第一次的增量备份,/bak/mysql/2015-07-08_21-01-19/是指第二次的增量备份,以此类推。以上语句执行成功之后,最终数据在全备目录下。第一步完成之后,我们开始第二步:回滚未完成的日志:[root@local-dbmysql]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --apply-log /bak/mysql/2015-07-08_18-52-43/上面执行完之后,/bak/mysql/2015-07-08_18-52-43/里的备份文件已完全准备就绪,最后一步是拷贝:[root@local-dbmysql]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --copy-back/bak/mysql/2015-07-08_18-52-43/修改目录权限,启动mysql。
修改目录权限,启动mysql。恢复完成,如下图
(小崔写的)

附件:http://down.51cto.com/data/2365907
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息