xtrabackup不完全恢复

例如,在2014年6月26日下午14:00的时候有人误操作drop掉了一张表,由于库不是很大,并且为测试库,并没有访问,这个时候,我们可以进行基于位置和时间点的不完全恢复

先找到早上的备份,查看那xtrabackup_binlog_info,查看备份结束时刻binlog的名称和位置

[root@test]# cat xtrabackup_binlog_info
mysql-bin.000001 516874

查看当前数据库的binlog文件和位置

mysql> show master logs;

+------------------+-----------+

| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 517430 |
| mysql-bin.000002 | 107|

+------------------+-----------+

从全备中恢复数据库,恢复全备,之后再从热备结束时刻binlog的位置开始,恢复到误操作时刻14:00之前的binlog

mysqlbinlog --start-position="516847" --stop-datetime="2014-06-26 13:59:59" /var/lib/mysql/mysql-bin.000001 /var/lib/mysql/mysql-bin.000002 |mysql -u用户名 -p密码

跳过故障点的误操作的时间点,应用之后的所有binlog文件

mysqlbinlog --start-datetime="2014-06-26 14:01:00" /var/lib/mysql/mysql-bin.000001 /var/lib/mysql/mysql-bin.000002 |mysql -u用户名 -p密码

到此为止,一次基于位置和时间点的不完全恢复完成。

 

posted on 2014-08-20 11:42  zitong  阅读(147)  评论(0编辑  收藏  举报