假設我已經有一個已啓動並正在運行的主數據庫服務器和一個從屬數據庫服務器。使用從設備轉儲(InnoDB和MyISAM)的MySQL增量備份
我想介紹增量備份/時間點恢復到混合中。由於我已經有了用於複製的二進制日誌,它應該像進行完整備份和存儲日誌位置一樣簡單。
但是,我在我的服務器上同時安裝了MyISAM和InnoDB表,並且在每種情況下如何進行完整備份似乎存在衝突的建議。如果它是嚴格的InnoDB,我可以用--single-transaction做mysqldump,但是這個選項警告我MyISAM可能仍然會改變。
我的問題如下:
(1)它是一個有效的關注,MySQL手冊建議的備份:
的mysqldump --single事務--flush-日誌--master -data = 2 --all-databases> whatever.sql
...將不適合,因爲MyISAM表可能會更改(表未使用--single-transaction鎖定),因此新的日誌文件已啓動,但它會啓動可能包含MyISAM表的查詢,這些表在實際上已經在服務器上運行之前已經在這些表中創建他轉儲(並且增量恢復會在不需要時嘗試重新執行這些查詢)? (2)是否只有通過MyISAM和InnoDB表才能獲得「正確」完整備份才能使用--lock-all表的唯一方法是? (或在那一刻關閉服務器/複製文件,因爲無論如何一切都鎖定了)
我假設這些問題的答案是肯定的,但請糾正我,如果我錯了,因爲我已經基於它的下一個想法。
我想保持中斷在主服務器上最小的,所以我正在考慮做完全轉儲關閉基於此方向的奴隸:
http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html#option_mysqldump_master-data
這些方向實際上是爲奴隸建立一個奴隸,但我想知道,下面是否合理?
每天一次:
- 停止從
- 顯示從站狀態並獲得主日誌文件和位置
- 執行從完全轉儲雖然沒有變化正在向它提出的(的MyISAM或InnoDB的)
- 啓動從機再一次
- 將我完全轉儲到主服務器在某些備份目錄
在恢復的情況下:
- 使用從這裏http://dev.mysql.com/doc/refman/5.0/en/point-in-time-recovery-positions.html位置從上述(2)到任何位置的位置去還原從(5)上述
- 運行點完全轉儲及時恢復我想恢復到
這是合法嗎?我不明白爲什麼從奴隸的全部轉儲與主人的轉儲有什麼不同,所以看起來好像沒問題。
感謝您的幫助!