MySQL數據庫恢復過程

benifit 9年前發布 | 13K 次閱讀 MySQL 數據庫服務器 MySQL,數據恢復

 某客戶更新數據的時候,誤刪了數據庫的內容,因為數據庫做了主從,但是沒有做備份(備份很重要啊!)幸好開啟了bin-log。之后只好把整個日志的記錄拿回來本地進行恢復。之后自己也做了一個簡單的測試,對數據進行恢復,具體如下:

  binlog是什么?

  binlog日志用于記錄所有更新且提交了數據或者已經潛在更新提交了數據(例如,沒有匹配任何行的一個DELETE)的所有語句。語句以“事件”的形式保存,它描述數據更改

  1、新建一個表

  CREATE TABLE `lynn`.`sn_test` ( `name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL , `age` INT( 3 ) NOT NULL ) ENGINE = MYISAM;

  2、插入多條數據

  INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn1', '1');

  INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn2', '2');

  INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn3', '3');

  INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn4', '4');

  3、查看數據并刪除

  mysql> select * from sn_test;

  +-------+-----+

  | name | age |

  +---------+---+

  | lynn1 | 1 |

  | lynn2 | 2 |

  | lynn3 | 3 |

  | lynn4 | 4 |

  +---------+-----+

  4 rows in set (0.00 sec)

  mysql> delete from sn_test;

  Query OK, 4 rows affected (0.00 sec)

  mysql> select * from sn_test;

  Empty set (0.00 sec)

  4、mysqlbinlog恢復數據

  mysqlbinlog mysql-bin.000006 > 1.sql

  查看1.txt里面數據插入的紀錄,把刪除之前的數據進行恢復

  mysqlbinlog mysql-bin.000006 --start-position=2471 --stop-position=2876 | mysql -uroot -p123

  重新登錄,查看數據,OK,已經成功恢復了

  對于數據庫操作,應該注意如下問題:

  1、要常備份(全備,增量備份),出了問題可以最快恢復數據;

  2、操作數據庫前,要把需要操作的數據庫或者表dump出來;

  3、使用備份工具:多備份。數據自動備份,需要時一鍵恢復即可。數據上傳到多個云端平臺,丟失風險基本為零

  4、需要把bin-log打開,就算沒有做上面的兩步,也可以通過日志恢復數據

分享自多備份論壇 轉載請注明出處

 本文由用戶 benifit 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!