hgfre 发表于 2016-11-18 12:45:01

使用mysqldump备份数据及做时间点还原测试步骤

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<s2.sql
接下来做时间还原:
# mysqlbinlog --start-position=4415--stop-position=4835 master.000004 >/backup/b1.sql
# mysql </backup/b1.sql
检查信息是否已经还原:
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信息
服务器要开启二进制日志;

页: [1]
查看完整版本: 使用mysqldump备份数据及做时间点还原测试步骤