1.根據binlog解析出所有ring資料庫的所有sql
[mysql@localhost ]$ mysqlbinlog --no-defaults --database=ring --start-datetime="2005-04-20 9:55:00" --stop-datetim="2009-04-08 08:05:00" /u01/mysql/log/mysql-bin.000005 > /u01/mysql/log/mysql_restore5.sql
[mysql@localhost ]$ ls -l /u01/mysql/log/mysql_restore5.sql
-rw-r--r-- 1 mysql dba 407 apr 8 15:33 /u01/mysql/log/mysql_restore5.sql
--start-datetime=datetime 從哪個點開始解析
--stop-datetim=datetime 從哪個點停止解析
--database=ring 指定需要解析哪個資料庫,只提取某個資料庫的sql語句
--如果有多個binlog的話需要解析多次,需要解析所有的binlog
2.重新在資料庫中執行
[mysql@localhost ]$ mysql -u root < /u01/mysql/log/mysql_restore5.sql
error 1062 (23000) at line 2559580: duplicate entry 175754263-140 for key 1 --恢復過程中出現主鍵衝突,匯入失敗
3.刪除已經恢復的資料,重新恢復一遍
[mysql@localhost ]$ mysql -u root
welcome to the mysql monitor. commands end with ; or g.
your mysql connection id is 7647
server version: 5.0.67-log source distribution
type help; or h for help. type c to clear the buffer.
root@(none) 02:55:41>drop database ring;
query ok, 8 rows affected (0.04 sec)
[mysql@localhost ]$ mysql -u root -f < /u01/mysql/log/mysql_restore5.sql -f引數:忽略錯誤繼續
error 1062 (23000) at line 2559580: duplicate entry 175754263-140 for key 1
error 1062 (23000) at line 2564671: duplicate entry 138 for key 1
error 1062 (23000) at line 2566216: duplicate entry 139 for key 1
error 1062 (23000) at line 2566224: duplicate entry 140 for key 1
error 1062 (23000) at line 2566232: duplicate entry 141 for key 1
error 1062 (23000) at line 2566240: duplicate entry 142 for key 1
error 1062 (23000) at line 2648410: duplicate entry 143 for key 1
error 1062 (23000) at line 2648418: duplicate entry 144 for key 1
error 1062 (23000) at line 2648581: duplicate entry 145 for key 1
error 1062 (23000) at line 2648589: duplicate entry 146 for key 1
error 1062 (23000) at line 2648597: duplicate entry 147 for key 1
error 1062 (23000) at line 2648605: duplicate entry 148 for key 1
error 1062 (23000) at line 2649279: duplicate entry 149 for key 1
error 1062 (23000) at line 2649287: duplicate entry 150 for key 1
error 1062 (23000) at line 2649295: duplicate entry 151 for key 1
error 1062 (23000) at line 2649303: duplicate entry 152 for key 1
error 1062 (23000) at line 2649311: duplicate entry 153 for key 1
error 1062 (23000) at line 2649319: duplicate entry 154 for key 1
error 1062 (23000) at line 2649327: duplicate entry 155 for key 1
error 1062 (23000) at line 2649335: duplicate entry 156 for key 1
恢復成功,有部分資料衝突需要開發自己去處理了。
利用binlog來恢復資料庫
開發庫和線上表結構有很多不一樣,分表個數也不同,我需要重新整理保持開發庫和線上一致,之前已經告知開發資料是否允許丟失,開發說資料可以不要了,直接丟掉,等我搞好之後開發告訴我部分資料 ring 是不能刪除的,我暈,只好想辦法來恢復資料了,沒有備份,不過還好有全部的binlog。1.根據binlog解析...
mysql利用mysqldump備份和恢復
mysqldump使用語法 mysqldump u 使用者 h host p 密碼 dbname table 路徑 遠端備份單庫例子 mysqldump uroot pabc123456 h192.168.1.101 zabbix gzip mysql data back zabbix users....
Mysql利用bin log進行資料恢復
mysql利用bin log進行資料恢復 線上的資料都很重要,但也會難免有時候有誤刪除的操作,這時候要在第一時間進行資料恢復。首先,要確保mysql開啟了binlog日誌功能,在 etc my.cnf檔案裡的 mysqld 區塊新增 log bin mysql bin。然後重啟mysql服務。將備份...