MySQL資料恢複

來源:互聯網
上載者:User

某客戶更新資料的時候,誤刪了資料庫的內容,因為資料庫做了主從,但是沒有做備份(備份很重要啊!)幸好開啟了bin-log,之後只好把整個日誌的記錄拿回來本地進行恢複。

之後自己也做了一個簡單的測試,對資料進行恢複,具體如下:

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、需要把bin-log開啟,就算沒有做上面的兩步,也可以通過日誌恢複資料

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.