十年網站開發(fā)經驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網站問題一站解決
mysql數據庫不小心還原了需要按照以下步驟恢復。
創(chuàng)新互聯(lián)公司主要從事成都網站設計、成都做網站、外貿網站建設、網頁設計、企業(yè)做網站、公司建網站等業(yè)務。立足成都服務雙峰,10多年網站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575
1、先確認mysql有沒有啟用bin日志 ,就是看下mysql.ini(my.cnf)里的log-bin=mysql-bin, 可以 自定義一個目錄和前綴名,比如/data/log/mylog這樣。
2、然后在數據庫文件存放的data目錄就能看到mysql-bin.00000x這樣的文件,這就是二進制日志了,可以導出成txt格式的,里面其實就是對數據庫的各種操作sql語句。
3、導出txt文件:
e:\wamp\bin\mysql\mysql5.6.12\binmysqlbinlog
--database=testdatabase
e:\wamp\bin\mysql\mysql5.6.12\data\mysql-bin.000312
c:\\test1.txt
這是windows下的導出,linux也是類似的。
database=數據庫名
從最早的日志還始還原
linux下可以很方便的 mysql-bin.000*
可以加參數開始時間和結束時間,就是你執(zhí)行那條sql語句的時間
start-datetime="2014-12-04
11:25:56"
--stop-datetime="2014-12-04
13:23:50"
4、恢復數據:
e:\wamp\bin\mysql\mysql5.6.12\binmysqlbinlog
--database=yundongchao
e:\wamp\bin\mysql\mysql5.6.12\data\mysql-bin.000179
|
mysql
-u
root
-p
------------------------------------------------
誤刪數據的幾種操作
如何事前預防誤刪數據?
誤刪行數據恢復
誤刪行數據恢復可以使用 Flashback工具 。
Flashback恢復數據的原理是通過修改binlog內容,拿回原庫進行回放,前提是 binlog_format=row和binlog_row_image=FULL 。
在使用Flashback進行恢復的時候, 不建議在主庫上進行操作 ,比較安全的做法是恢復出一個備份,或者找一個從庫作為臨時庫,在這個臨時庫上執(zhí)行操作,然后再將確認過的臨時庫的數據恢復到主庫。
誤刪庫/表
drop table或者truncate table誤刪數據表 無法通過Flashback工具恢復 ,因為binlog_format的格式即使是ROW模式,在binlog中記錄的也只是一條drop table或者truncate語句,因此無法進行恢復。
此時恢復的方式需要 全量備份加增量日志的方式進行恢復 ,因此要求數據有定期的全量備份,并且實時備份binlog。
假如某人在中午12點誤刪除了一個庫里的某張表,恢復數據的流程如下:
mysqlbinlog恢復數據慢的原因?
如何更快的恢復誤刪的表?
在用備份恢復出臨時實例以后,將這個臨時實例設置成線上備庫的從庫:
假設此時備庫的binlog已經被刪除,那么需要去binlog備份系統(tǒng)找到刪掉的日志文件拷貝到日志目錄下,假設文件名是master.000001,打開日志目錄下的binlog的index文件,在開頭加入master.000001,讓備庫重新識別此日志文件
延遲復制備庫
以上恢復都具有時間不可控性,如果采用上述步驟進行恢復,建議開發(fā)成工具(甚至可以做自己的DBA自動化平臺),并大量測試后進行使用,避免手動誤操作帶來更大的問題。
一般的主備復制存在的問題是,假設主庫上的表被刪除,這個命令很快會被發(fā)給所有從庫,進而導致從庫的數據表也被一起誤刪除。
延遲復制備庫 是可以持續(xù)保持與主庫有N秒延遲的備庫 。
假設這里N=3600,那么表示只要在1個小時以內發(fā)現(xiàn)了誤刪除,就可以的到備庫上執(zhí)行stop slave,再通過之前講到的方法,跳過誤操作的命令(比如將誤刪除的GTID加到實例集合中),就可以恢復出需要的數據。
rm誤刪
只要你的集群是高可用,如果rm刪除了某個節(jié)點(只要不是惡意刪除所有節(jié)點),HA系統(tǒng)會自動開始工作,選出一個新的主庫,從而保證集群工作。
1.如果有備份,恢復備份數據就可以。
2.如果在企業(yè)管理器里刪除了數據庫,如果有備份,恢復備份數據就可以。
3. 如果你是在程序里卸載sql程序,數據就在sql安裝目錄里,附加數據庫就可以了。
4.如果備份數據都沒有,可以找個硬盤數據恢復公司。
navicat for mysql 誤刪數據庫怎么恢復
重新創(chuàng)建一個數據庫
找到最近一次完整備份,導入完整備份
打開最近一次完整備份到你要恢復點的binlog,前提是打開log-bin
根據時間點,執(zhí)行binlog日志,恢復到你所要的恢復點
binlog操作方法