mysql表誤刪回覆 恢復mysql資料庫誤刪資料

2021-10-17 05:30:16 字數 2190 閱讀 8186

前言

某一天,天朗氣清;突然傳來訊息:資料庫被刪庫了!這簡直不亞於8級大**呀;一找原因,伺服器宕機造成了資料庫資料丟失。於是,通過日誌恢復資料的救援開始了。

正文在資料庫開啟binlog功能

找到/etc/my.cnf並編輯(沒有my.cnf的時候就找my.ini);新增

log-bin=mysql-bin

expire_logs_days=7(日誌保留天數)

然後重啟mysql

注意:log_bin是生成的bin-log的檔名,字尾則是6位數字的自增編碼,從000001開始:

mysql_bin.000001

mysql_bin.000002

操作日誌

1、檢視日誌檔案:

mysql> show master logs;

| log_name | file_size |

| mysql-bin.000001 | 120 |

| mysql-bin.000002 | 4249 |

| mysql-bin.000003 | 1110 |

2、檢視最後乙個binlog日誌的編號名稱(就是最後乙個操作事件的值):

mysql> show master status;

| file | position | binlog_do_db | binlog_ignore_db |

| mysql-bin.000003 | 1110 | | | |

3、產生乙個新的日誌檔案

mysql> flush logs;

query ok, 0 rows affected (0.01 sec)

mysql> show master status;

| log_name | file_size |

| mysql-bin.000004 | 106 |

4 rows in set (0.01 sec)

4、刪除所有binlog日誌,重新記錄

mysql> reset master;

query ok, 0 rows affected (0.01 sec)

mysql> show master status;

| log_name | file_size |

| mysql-bin.000001 | 106 |

1 rows in set (0.01 sec)

恢復資料

恢復資料的方式有很多種,可以根據自己具體的情況來選擇用哪種。

1、如果想全部恢復,先執行之前的備份恢復,再執行自備份後產生的二進位制日誌檔案

mysql localhost mysql-bin.000001 | mysql -uroot -p( 這樣資料庫就可以恢復到刪除資料前的狀態)

2、根據時間點來恢復,如果確認被刪的時間點為2019-03-25 09:00:00,那麼就可以如下

mysqlbinlog --stop-date='2019-03-25 8:59:59' mysql-bin.000001 | mysql -uroot -p 然後跳過資料被刪的時間點,繼續執行後面的binlog # mysqlbinlog --start-date='2019-03-25 09:01:00' mysql-bin.000001 | mysql -uroot -p

其中--stop-date='2019-03-25 08:59:59' 和--start-date='2019-03-25 09:01:00'

3、如果知道兩個時間點,就按如下操作

mysqlbinlog --start-datetime="2019-03-25 10:30:30" --stop-datetime="2019-03-25 11:10:10" mysql-bin.000001 | mysql -u root -p

4、通過檢視日誌檔案資訊確認(假如操作點為6200-6300)

mysqlbinlog --stop-position=6200 mysql-bin.000001 | mysql -uroot -p

mysqlbinlog --start-position=6300 mysql-bin.000001 | mysql -uroot -p

注意因為mysql的binlog是二進位制檔案,一定要用mysqlbinlog命令才可以操作。

> 舉例,匯出sql檔案:# mysqlbinlog mysql-bin.000001 >test.sql

後續通過這一次經歷,知道了以後一定要做好資料庫的備份;這很重要!

oracle恢復誤刪表

一 表的恢復 對誤刪的表,只要沒有使用purge永久刪除選項,那麼從flash back區恢復回來希望是挺大的。一般步驟有 1 從flash back裡查詢被刪除的表 select from recyclebin 2.執行表的恢復 flashback table tb to before drop,...

mysql誤刪資料恢復

資料庫忘記備份,可以使用mysql的日誌二進位制檔案 binlog 進行資料恢復。首先檢視是否開啟了binlog。show variables like log 進入mysql根目錄,會看到有binlog.的日誌檔案。取後面數字最大的日誌檔案,資料恢復。3.檢查某一時間端的binlog start ...

MySQL資料誤刪恢復

一 檢視mysql的binlog是否開啟 二 檢視binlog存放路徑 四 轉換binlog為正常sql mysqlbinlog base64 output decode rows v database dbname start datetime 2020 08 15 13 00 00 stop d...