1、备份dbtest数据库数据
# mysqldump --databases dbtest --master-data=2 --single-transaction >s2.sql
记录当前的库的status信息
# cat s2.sql |grep CHANGE
-- CHANGE MASTER TO MASTER_LOG_FILE='master.000004', MASTER_LOG_POS=4415;
mysql> show master status ;
|master.000004 | 4415 |
2、修改数据库的信息
mysql> delete from tb1 where id >2 ;
mysql> insert into tb1 values(11,'nina'),(22,'son');
查看当前的status信息
mysql> show master status ;
| master.000004 | 4835 |
3、模拟数据库被以外的删除并恢复到删除库之前的库信息;
mysql> drop database dbtest ;
当前的数据已经全部丢失,所以需要用库的一个全备份进行还原,然后再用二进制日志信息做时间点还原:
全被数据还原:
# mysql
接下来做时间还原:
# mysqlbinlog --start-position=4415 --stop-position=4835 master.000004 >/backup/b1.sql
# mysql
检查信息是否已经还原:
mysql> select * from tb1 ;
| 1 | tina |
| 2 | jason |
| 11 | nina |
| 22 | son |
+------+-------+
还原成功。
总结,使用mysqldump做备份还原的时候,记得使用参数master-data参数:
master-data ={0|1|2}
0 不记录服务器当前的status信息
1 记录change master to信息
2 注释change master to信息
服务器要开启二进制日志;