簡體   English   中英

如何使用 mysql 二進制日志從 drop database 命令恢復?

[英]How do I restore from a drop database command using a mysql binary log?

如何恢復使用“drop database”命令刪除的 mysql 數據庫? 我可以訪問二進制日志,這應該使這種類型的回滾成為可能。

文檔很爛。 它暗示 DROP DATABASE 是可恢復的,但僅在奇怪的情況下我不熟悉http://dev.mysql.com/doc/refman/5.0/en/binary-log.html

根據 Docs,binlog 只是基於給定參考點執行的一系列命令。 所以當你執行“DROP DATABASE”時,而不是“哦,他正在刪除數據庫,我們現在應該備份以防萬一”它只是在最后一個二進制日志中寫了一個“DROP DATABASE”。 恢復並不像倒放磁帶那么簡單。

您需要做的是從最后一個已知良好狀態恢復數據庫,並應用在該恢復點和 DROP 命令之間發生的二進制日志。

http://dev.mysql.com/doc/refman/5.0/en/recovery-from-backups.html

如何確定使用哪些二進制日志,尚不清楚。

沒有什么比擁有完整的文件系統備份更好的了。 你至少應該有這些可以回退。

如果您沒有數據庫備份,那您就不走運了。 刪除數據庫是永久性的。

假設你有一個備份,二進制日志保存了自備份以來發生的事情。 使用 mysqlbinlog 實用程序,您可以執行以下操作:

mysqlbinlog the_log_file > update.sql

雖然我認為您可能必須編輯該文件以刪除您不想再次執行的任何內容(例如 drop database 語句)。

祝你好運!

沒有備份沒有派對。

那我來回答:

為了不再遇到這種情況,請安裝超簡單且超強大的 automysqlbackup(如果您使用的是 linux):

sudo apt-get install automysqlbackup

配置它:

須藤納米 /etc/default/automysqlbackup

然后將其內容自動上傳到 dropbox、ubuntu 或類似的。

只有這樣才能快樂地生活:)

只是為了補充 Kent Fredric 的回答,如果您自數據庫創建以來使用二進制日志記錄,則可以回滾drop database命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM