国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

mysql 找回誤刪表的數(shù)據(jù)方法(必看)

2024-07-24 12:52:07
字體:
供稿:網(wǎng)友

有備份的話很簡單,只需要生成一個最近備份的數(shù)據(jù) 然后用mysqlbinlog找回備份時間點之后的數(shù)據(jù) 再恢復(fù)到現(xiàn)網(wǎng)即可。

要是沒有備份 可能就會比較麻煩,找回數(shù)據(jù)的成本也是非常之高的.

下面介紹下 mysqlbinlog找回備份時間點之后的數(shù)據(jù)的辦法:

做個簡單的實驗,將mysql的表數(shù)據(jù)刪除之后,然后用mysqlbinlog 找回剛才刪除的表的數(shù)據(jù)。

app表的創(chuàng)建時間和數(shù)據(jù)的插入: 2013-02-04 10:00:00

原理: mysqlbinlog

前提: mysql開啟了bin log日志

測試刪除之前:

mysql> show tables;+-----------------------+| Tables_in_report_sina |+-----------------------+| app || test |+-----------------------+mysql> select now();+---------------------+| now() |+---------------------+| 2013-02-04 11:45:44 |+---------------------+1 row in set (0.01 sec)mysql> select count(1) from app;+----------+| count(1) |+----------+| 10 |+----------+1 row in set (0.01 sec)

開始刪除數(shù)據(jù):

mysql> delete from app where id =1;Query OK, 1 row affected (0.00 sec)mysql> mysql> delete from app where id <6;Query OK, 4 rows affected (0.01 sec)mysql> select count(1) from app;+----------+| count(1) |+----------+| 5 |+----------+1 row in set (0.00 sec) mysql> select now();+---------------------+| now() |+---------------------+| 2013-02-04 12:08:45 |+---------------------+

開始找回數(shù)據(jù):

1.找到bin log的位置:

/app/mysql/log-rw-rw---- 1 mysql mysql 17K Feb 4 11:43 alert.log-rw-rw---- 1 mysql mysql 1.0K Nov 1 14:52 master-bin.000001-rw-rw---- 1 mysql mysql 126 Dec 25 14:00 master-bin.000002-rw-rw---- 1 mysql mysql 126 Dec 25 14:02 master-bin.000003-rw-rw---- 1 mysql mysql 126 Dec 25 14:02 master-bin.000004-rw-rw---- 1 mysql mysql 107 Dec 25 14:02 master-bin.000005-rw-rw---- 1 mysql mysql 13K Feb 4 12:02 master-bin.000006

可以看到 最近被修改的bin log 只有 master-bin.000006

(要是誤刪除跨越了好幾個bin log 找回數(shù)據(jù)的時候就必須一個個的bin log日志去找回了)

將這一段時間所有執(zhí)行的sql語句存入到 待恢復(fù)的 sql文件中。

mysqlbinlog --start-date='2013-02-04 10:00:00' --stop-date='2013-02-04 12:08:45' /app/mysql/log/master-bin.000006 >/app/mysql/mysql_restore_20130204.sql

當(dāng)然在現(xiàn)網(wǎng)環(huán)境下 ,這個時間可能沒那么的準(zhǔn)確,并且還有其他事務(wù)sql語句的干擾。

創(chuàng)建臨時數(shù)據(jù)庫

create database for_bak;

導(dǎo)出當(dāng)前數(shù)據(jù)庫中被誤刪的表 app

mysqldump -uroot -ppwd my_db app > /app/mysql/app.sql

將現(xiàn)在的數(shù)據(jù)導(dǎo)入到臨時表:

mysql -root -ppwd for_bak < /app/mysql/app.sql

我們再來看下 /app/mysql/mysql_restore_20130204.sql的部分內(nèi)容: (可以看到罪惡的delete 語句)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 吉林省| 墨竹工卡县| 呈贡县| 阿勒泰市| 天津市| 沾化县| 疏勒县| 建水县| 兴和县| 余干县| 遂平县| 丰都县| 广元市| 江油市| 锡林郭勒盟| 孟村| 全州县| 大宁县| 醴陵市| 保亭| 轮台县| 垣曲县| 怀来县| 临沧市| 大连市| 南岸区| 武定县| 永顺县| 孝义市| 苏州市| 游戏| 鸡西市| 阳谷县| 饶河县| 克东县| 耿马| 布拖县| 杭锦后旗| 天祝| 措勤县| 桂阳县|