MySQL5.7下面,誤操做致使的drop table db1.tb1; 的恢復方法:

MySQL5.7下面,誤操做致使的drop table db1.tb1; 的恢復方法:mysql

 

0、停業務數據寫入。【iptables封禁】sql

 

一、從備份服務器上拉取最新的一個全備文件,恢復到一個臨時的服務器上,解壓並啓動mysqld。服務器

二、在這臺新的slave上執行以下命令:spa

2.1 先配置好複製關係, change master to 到當前誤操做的服務器,可是不要啓動複製進程。【相似以下命令】code

1
2
3
4
5
6
>CHANGE MASTER  TO 
MASTER_HOST= '172.16.20.73' ,
MASTER_USER= 'rpl' ,
MASTER_PASSWORD= 'rpl' ,
master_log_file= 'master-bin.000005' ,
master_log_pos=245;

 

2.2 在新的slave上執行復制過濾操做:進程

1
> CHANGE REPLICATION FILTER REPLICATE_WILD_DO_TABLE = ( 'db1.tb1' );

2.3 開啓slave 複製,到出問題的地方以前停下來事務

1
2
> start slave io_thread ;
> start slave sql_thread until master_LOG_FILE= 'mysql-bin.000010' ,master_LOG_POS=10020;    -- 執行到最後一次沒問題的位移點

 

2.4 在slave上跳過這個誤操做的事務ip

1
2
3
4
5
6
set  GTID_NEXT= '56bc2f04-7556-11e8-b3b6-000c29ba98ce:1492'  ;   -- 這裏的這個就是應該跳過的那個事務(能夠從主庫的binlog裏面找到這個gtid編號)
begin  ;
commit  ;
set  GTID_NEXT= "AUTOMATIC" ;
> start slave ;
> show slave status \G 查看複製狀況

 

2.5 將這個從庫的db1.tb1 經過mysqldump方式導出,而後倒入到線上誤操做的實例裏面。 【大表的話,能夠用xtrabackup備份單表,而後import倒入表空間來完成數據的倒入】ci

相關文章
相關標籤/搜索