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!