首页 > 代码库 > 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增量备份、恢复以及时间点恢复