簡體   English   中英

MySQL DB差異備份

[英]MySql DB differential backup

我已在14:00 PM在復制服務器上還原了實時數據庫備份(已在01:00 AM完成)。

備份已成功還原,復制服務器已正確更新,但是如何還原實時服務器在01:00 AM至14:00 PM之間已更新的數據。

有沒有可用的工具,或者可以通過任何腳本或命令行使用,請提供幫助。

此致蘇拉卜

您無法“還原”此類數據(因為它們從未在該接收實例中訪問過),但是可以在備份后“應用”對實時數據庫所做的所有更改。

最簡單的方法是讓復制服務器(通常稱為“從屬服務器”)在進行備份時從主服務器的binlog開始復制。 如果使用“ mysqldump”進行備份,則“ --master-data”選項將為您完成備份。

現在您錯過了這個機會,我看到了兩種可能的方法:
1)使用“ mysqldump --master-data”重復全部操作。
2)使用“ mysqlbinlog”將從主站到從站的那段時間的變化反饋到“ mysql”中:
mysqlbinlog ... | MySQL的-H奴隸...

方法2要求您仍然具有這些binlog,並且即使在14:00 之后的01:00-14:00期間提供了那些值,它也假定主服務器的更改適用於從屬服務器。不舉行。
另外,它要求您可以確定要傳輸的第一個和最后一個更改在二進制日志中的確切位置。 不要嘗試使用“ --start-datetime”和“ --stop-datetime”進行傳輸,我發現長時間運行的事務會產生一些意外的影響。 僅將它們用於查看01:00和14:00左右的動作,確定您需要執行的第一個動作(接近01:00)和已經執行的第一個動作(接近14:00)的確切位置,然后使用“-開始位置”和“-停止位置”進行傳輸。

方法1絕對更容易進行,我強烈建議您使用。 MySQL手冊在http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html頁面上說明了如何設置從站,其中涵蓋了所有內容。

如果您使用物理文件副本或LVM快照進行初始傳輸(而不是“ mysqldump”),則也要重復該操作,但要記錄主服務器的binlog位置(“顯示主服務器狀態”),然后讓從服務器從此處啟動( “將母版更改為...”)。

暫無
暫無

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

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