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信息
服務器要開啓二進制日誌;