備份和異地恢復設置
我一直在閱讀很多關於MySQL不同備份選項的主題,並希望獲得更多的見解,以便我能夠找到一個。
我們目前的情況是 10 個 DB(最大單個 ~60GB)中的約 100 GB InnoDB 和 MySAM 數據,沒有複製。AutoMySQLBackup的每晚 mysqldump 備份將數據庫鎖定 20 分鐘。
我們刪除了 Percona XtraBackup,因為難以恢復數據庫以測試備份是否真的可行,以及我們是否可以使用它們從災難中恢復。此外,我們經常將幾個數據庫轉移到不同的位置進行開發測試。將單個數據庫從我們 Red Hat 伺服器上的 XtraBackup 轉儲恢復到 Mac OS X 機器以進行本地開發似乎並不容易(甚至不可能?)。當然,使用 mysqldump 很容易做到這一點。
我們的新設置將有一個 MySQL 5.5 master 複製到同一機架中不同伺服器上的 MySQL 5.5 slave。我們希望每天都有備份,不會因鎖定等原因而停機,並且能夠輕鬆移動備份並在不同的伺服器/平台上恢復。也許多產的羅蘭多提出的這個解決方案是最好的?
建議 #2:在不同的伺服器上使用 MySQL 複製
考慮到您的第一個需求(低成本),如果您可以訪問具有足夠磁碟空間的商品伺服器,請將 MySQL 複製設置到該外部伺服器。這樣您就可以在從屬設備上執行備份,如下所示
- 停止奴隸;
- XtraBackup
- 啟動奴隸;
您可以在 Master 上實現零影響(無伺服器負載、無磁碟 I/O)
我們自然會用 mysqldump 替換 XtraBackup。對於我們的情況有什麼更好的想法嗎?
從奴隸那裡進行備份正是我的做法,而且效果很好。我無法想像一種更好的方法來進行備份,而不會導致主伺服器和您的應用程序停機。
我對您關於無法將備份還原到 mac osx 機器上的聲明很感興趣(這可能是一個不同的問題)。另一種方法是在本地 Mac 機器上設置虛擬機,該機器執行與生產伺服器執行的作業系統相同的作業系統。使管理這些機器變得容易的工具是Vagrant。
模仿生產環境還有一個額外的好處,即允許您以相當高的確定性測試任何恢復過程,如果您需要,它可以在生產伺服器上執行。