首页 > 代码库 > Xtrabackup增量备份、恢复以及时间点恢复
Xtrabackup增量备份、恢复以及时间点恢复
1、记录当前的status信息
| master.000001 | 120 |
2、制作一个完整的备份文件
# innobackupex /backup
备份的文件:/backup/2016-11-16_16-18-54
查看其status信息
# cat xtrabackup_binlog_info
master.000001 120
#
3、修改数据库信息以使得status发生变化
比如:创建了一个表tb1,并插入2条记录
mysql> select * from tb1 ;
+------+-------+
| id | name |
+------+-------+
| 1 | tina |
| 2 | jason |
+------+-------+
记录修改后的status信息
| master.000001 | 442 |
4、用Xtrabackup工具进行增量备份
# innobackupex --incremental /backup --incremental-basedir=/backup/2016-11-16_16-18-54/
增量备份文件1:2016-11-16_16-24-53
查看备份文件信息
# cat xtrabackup_binlog_info
master.000001 442
#
5、进一步修改数据库信息并做增量备份
记录当前的status信息
| master.000001 | 765 |
# innobackupex --incremental /backup --incremental-basedir=/backup/2016-11-16_16-24-53/
当前的增量文件的根目录为上次增量备份文件
增量备份文件2:2016-11-16_16-29-04
查看其xtrabackup_binlog_info
# cat xtrabackup_binlog_info
master.000001 765
#
6、进一步修改数据库信息并记录当前的status信息(时间点数据恢复)
例如:修改一下表明
mysql> alter table tb1 rename tb11 ;
mysql> alter table tb2 rename tb22 ;
记录当前的status
| master.000001 | 967 |
7、模拟库异常无法正常启动
# rm -rf /mydata/data/*
8、对数据库进行增量恢复
8.1 准备增量备份恢复文件
# innobackupex --apply-log --redo-only /backup/2016-11-16_16-18-54/
# innobackupex --apply-log --redo-only /backup/2016-11-16_16-18-54/ --incremental-dir=/backup/2016-11-16_16-24-53/
# innobackupex --apply-log --redo-only /backup/2016-11-16_16-18-54/ --incremental-dir=/backup/2016-11-16_16-29-04/
比对一下:看准备完的增量备份文件的lsn号是否与最后的增量文件中一致,如果相同则,准备完毕
[root@localhost 2016-11-16_16-18-54]# cat xtrabackup_checkpoints
backup_type = log-applied
from_lsn = 0
to_lsn = 1832084
last_lsn = 1832084
compact = 0
recover_binlog_info = 0
[root@localhost 2016-11-16_16-18-54]#
[root@localhost 2016-11-16_16-18-54]# cat ../2016-11-16_16-29-04/xtrabackup_checkpoints
backup_type = incremental
from_lsn = 1826527
to_lsn = 1832084
last_lsn = 1832084
compact = 0
recover_binlog_info = 0
[root@localhost 2016-11-16_16-18-54]#
8.2 进行数据恢复
# innobackupex --copy-back /backup/2016-11-16_16-18-54/
# chown -R mysql.mysql /mydata/data/*
8.3 启动mysql并查看数据是否恢复
mysql> show tables ;
+----------------+
| Tables_in_tina |
+----------------+
| tb1 |
| tb2 |
+----------------+
2 rows in set (0.00 sec)
mysql>
9、进一步进行时间点恢复
返回至第5步和第6步导出二进制日志信息
# mysqlbinlog --start-position=765 --stop-position=967 master.000001 >u1.sql
# mysql <u1.sql
查看时间点恢复是否正常
mysql> show tables ;
+----------------+
| Tables_in_tina |
+----------------+
| tb11 |
| tb22 |
+----------------+
2 rows in set (0.00 sec)
QQ:3369358483
Ok!
本文出自 “不进则退” 博客,请务必保留此出处http://laozhu.blog.51cto.com/755494/1873583
Xtrabackup增量备份、恢复以及时间点恢复