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!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章