Xtrabackup 备份大数据库(全量备份和增量备份)(3)

增量恢复
增量恢复和全量恢复有着一些不同,需要注意的是:
1)需要在每个备份(包括完全备份和增量备份)上,将已经提交的事务进行“重放”,重放之后,所有的备份数据将合并到完全备份上;

2)基于所有备份将未提交的事务进行“回滚”

关闭数据库
[root@db02 ~]# mysqladmin -uroot -pli123456 -S /data/3306/mysql.sock shutdown

执行完全备份的前滚

[root@db02 ~]# innobackupex --defaults-file=/data/3306/my.cnf --user=root --pli123456 --apply-log --redo-only /backup/full/2016-07-10_08-24-43/

##--redo-only 在做增量恢复时��全量和增量备份的数据文件在恢复前必须将在重做日志文件中的已提交的事务前滚!此参数将会合并全备和增量备份的数据文件,但不包括最后一次增量备份的数据文件

将全备和增备合并
[root@db02 ~]# innobackupex --defaults-files=/data/3306/my.cnf --user=root --pli123456 --apply-log /backup/full/2016-07-10_08-24-43/ --incremental-dir=/backup/add/2016-07-10_08-55-12/
##/backup/full/2016-07-10_08-24-43/ 全备目录
##--incremental-dir=/backup/add/2016-07-10_08-55-12/ 增量目录
##--redo-only 只有一次增备,所以不需要加这个参数,如果有N次增备,依次恢复增备,除了最后一个每次都要加 --redo-only的参数

破坏数据库,将全备和增备恢复回来
[root@db02 3306]# rm -fr data_bak
[root@db02 3306]# mv data data_bak
[root@db02 3306]# innobackupex --defaults-file=/data/3306/my.cnf --copy-back /backup/full/2016-07-10_08-24-43/
...
160710 09:54:54 [01]        ...done
160710 09:54:54 [01] Copying ./mysql/user.frm to /data/3306/data/mysql/user.frm
160710 09:54:54 [01]        ...done
160710 09:54:54 [01] Copying ./mysql/tables_priv.MYI to /data/3306/data/mysql/tables_priv.MYI
160710 09:54:54 [01]        ...done
160710 09:54:55 [01] Copying ./mysql/proxies_priv.MYI to /data/3306/data/mysql/proxies_priv.MYI
160710 09:54:55 [01]        ...done
160710 09:54:55 completed OK!
[root@db02 3306]# chown -R mysql.mysql data

恢复成功,登陆查看
1234567891011121314 [root@db02 data]# mysqld_safe --defaults-file=/data/3306/my.cnf &
[root@db02 data]# mysql -uroot -pli123456 -S /data/3306/mysql.sock
mysql> select * from lichengbing.test;
+----+-------+
| id | name  |
+----+-------+
|  1 | one  |
|  2 | two  |
|  3 | three |
|  4 | four  |
|  5 | five  |
|  6 | six  |
+----+-------+
6 rows in set (0.00 sec)

其他一些备份示例
指定数据库备份
[root@db02 each]# innobackupex --defaults-file=/data/3306/my.cnf  --user=root --password=li123456 --databases="lichengbing" /backup/each/

指定表备份
[root@db02 each]# innobackupex --defaults-file=/data/3306/my.cnf  --user=root --password=li123456 --databases="lichengbing test" /backup/each/

以压缩格式备份
[root@db02 full]# innobackupex --defaults-file=/data/3306/my.cnf  --user=root --password=li123456 --stream=tar /backup/full/|gzip>/backup/full/back_`date +%F`.tar.gz

MySQL管理之使用XtraBackup进行热备

MySQL开源备份工具Xtrabackup备份部署

MySQL Xtrabackup备份和恢复

用XtraBackup实现MySQL的主从复制快速部署【主不锁表】

安装和使用 Percona 推出的 Xtrabackup 备份 MySQL

XtraBackup 的详细介绍请点这里
XtraBackup 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/722e0a3e813bf86b160a23f56f19625a.html