Mysql結合備份+binlog恢復誤刪除操作數據

結合備份+binlog恢復數據。

場景:昨天晚上做了全備,今天上午用戶不小心誤刪除某張表。

解決方案:不建議在原生產環境直接恢復,建議在另一臺機器恢復全庫+日志,然后導入到生產環境。

Mysql結合備份+binlog恢復誤刪除操作數據

1) 創建表

select?now();? create?table?itpuxfg1?( `id`?int(10)?unsigned?not?null?auto_increment, `name`?varchar(16)?not?null, `sex`?enum('m','w')?not?null?default?'m', `age`?tinyint(3)?unsigned?not?null, primary?key?(`id`) )?engine=innodb?default?charset=utf8; insert?into?itpux.itpuxfg1(`name`,`sex`,`age`)?values ('itpux1','w',21), ('itpux2','m',22), ('itpux3','w',23), ('itpux4','m',24), ('itpux5','w',25); commit; select?*?from?itpux.itpuxfg1;

2)做備份 邏輯備份

mysqldump?-uroot?-p?-F?-R?--all-databases?>?alldb_bak.sql

3)?模擬上午的業務操作

show?master?status;?--?154 select?now();?--?2018-04-27?06:27:40 update?itpux.itpuxfg1?set?name='itpux04'?where?id=4; commit; select?*?from?itpux.itpuxfg1; select?now();?--?2018-04-27?06:28:03 update?itpux.itpuxfg1?set?name='itpux05'?where?id=5; commit; select?*?from?itpux.itpuxfg1; show?master?status;?--?890

4) 中午的誤刪除

select?now();?--?2018-04-27?06:29:00 drop?table?itpuxfg1; select?*?from?itpux.itpuxfg1; show?master?status;?--?1078

5) 在另一臺機器恢復(我的案例在本地,生產不要在本地)

show master status;通過這個文件名,向前備份需要的binlog

–記得拷貝binlog日志

show binlog events in ‘itpuxdb-binlog.000003’;

mysqlbinlog itpuxdb-binlog.000003 |grep “DROP TABLE”

mysqlbinlog itpuxdb-binlog.000003 |grep “itpuxfg1″(注意日志 兩個不同的版本 請區分

Mysql結合備份+binlog恢復誤刪除操作數據

Mysql結合備份+binlog恢復誤刪除操作數據

演示:

把itpux 庫刪除drop database itpux;

恢復:

先創建數據庫

mysql> create database itpux default character set utf8; — 如果不清楚條件,建議在原庫查詢show create database mysql;

mysql -uroot -p -o itpux

— 恢復后,查不到今天上午更新的記錄

mysql> show tables;

Mysql結合備份+binlog恢復誤刪除操作數據

— 通過binlog 日志增量恢復表刪除之前

[root@mysqldb binlog]# mysqlbinlog??-vv –start-position=219??–stop-position=913 –database=itpux itpuxdb-binlog.000001 >sa.sql

— 恢復這張表到原庫里面

先從另外的庫里備份這張表

mysqldump -uroot -p itpux itpuxfg1 > sa.sql

再把生產庫,直接恢復(原來的庫中的表是已經被刪除掉了)

mysql -uroot -p itpux

mysql> select * from itpuxfg1;

1)恢復到這張表到源庫里

mysqldump -uroot -p itpux itpuxfg1 >sa.sql

?相關推薦:

mysql刪除數據庫沒有備份怎么恢復

mysql刪除數據庫沒有備份怎么恢復?

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享