Dmitri Joukovski和Pavel Pragin

MySQL數據庫由於其始終如一的快速性能,高可靠性和易用性,已成為世界上最受歡迎的開源數據庫。您可能正在將MySQL數據庫用於託管託管服務提供商處的在線論壇和Wiki,或者正在遠程辦公室中使用它來跟踪Bugzilla的錯誤,或者您只是在考慮開發一些使用MySQL的新Web 2.0應用程序。無論哪種方式,如果您重視存儲在MySQL數據庫中的信息,則都需要確保MySQL的成功,安全和一致的備份,並且對數據庫應用程序的影響最小。確保您的備份解決方案可以最有效地利用網絡,服務器和存儲資源。

如果您正在尋找一種通過為MySQL提供易於使用,靈活而強大的備份和恢復來簡化您的生活的解決方案,那麼Zmanda Recovery Manager(ZRM)可能是您的正確選擇。有關的詳細信息 ZRM功能在此處可用。

對於數據庫的任何備份,主要考慮因素是備份的一致性以及對用戶和應用程序的影響。但是,遠程MySQL的備份存在以下額外挑戰:

  • 網絡使用
  • 安全性,以及
  • MySQL數據可恢復到其他主機的靈活性。

當您無法完全控制MySQL環境並且希望選擇將數據恢復到具有不同版本的MySQL服務器或不同操作系統的其他託管主機提供程序時,最後一點可能很重要。

增量備份顯著減少了備份窗口和網絡使用量,因為只有最後一次完全備份或最後一次增量備份以來的更改才通過網絡移動。 ZRM使您可以輕鬆地從增量備份中恢復數據,即使您必須使用多個增量備份映像將數據恢復到特定的時間點也是如此。增量備份需要啟用MySQL二進制日誌,但是根據MySQL文檔,啟用二進制日誌會導致 性能命中率低於1%。

邏輯備份為恢復提供了更大的靈活性,因為備份文件是一個文本文件,其中包含用於重新創建數據庫模式和內容的所有MySQL語句。邏輯備份適用於除MySQL群集使用的NDB引擎以外的所有存儲引擎。邏輯備份的最大優勢是數據庫恢復的靈活性。您可以將MySQL的邏輯備份還原到其他體系結構,甚至還原到另一個數據庫。邏輯ZRM備份映像的可移植性使ZRM成為遷移的便捷工具。例如,您可以移動MySQL數據:

  • 從Solaris上的MySQL到Linux上的MySQL
  • 從一個存儲引擎到另一個
  • 從32位服務器到64位服務器
  • 從一個託管託管提供商到您的數據中心,或者從另一個提供商使用不同的MySQL配置

當然,要為這種靈活的恢復付出代價。從邏輯備份還原數據可能需要很長時間,因為您必須讀取並重播所有MySQL語句。另一個缺點是,可能很難預測邏輯備份的大小。根據數據類型和數據庫架構,邏輯備份的大小可能會大於數據庫本身。一種補救措施是,由於邏輯備份基本上是一個文本文件,因此通常可以得到不錯的壓縮。

原始備份提供了數據庫的一致副本,而您的備份是二進製文件。原始備份比邏輯備份的優勢在於:

  • 備份,尤其是恢復要快得多。例如,對於具有4-5 GB大小的同一數據庫,不難發現原始備份比邏輯備份快5倍,原始備份映像的恢復比邏輯備份的速度快20倍。圖片。
  • 由於備份只是數據庫的副本,因此您將始終知道備份的確切大小。
  • 它提供了更好的可伸縮性,如果您的MySQL數據庫很大(例如10-20 GB或更大),則可能會很重要。

原始備份只能與原始數據一起恢復到同一操作系統上的同一MySQL服務器版本。這意味著將MySQL的原始備份映像恢復到另一個託管託管提供程序的機會不是很高,因此在選擇原始備份與邏輯備份時應考慮到這一點。

原始備份和邏輯備份均提供熱備份,這意味著您不必關閉MySQL服務器進行備份,但是在備份過程中所有表都被鎖定,用戶無法輸入數據。因此,您應該考慮使用ZRM調度插件,該插件允許根據您定義的閾值延遲備份。例如,如果有50個以上的用戶訪問數據庫,則可以將備份延遲一個小時。

MySQL遠程備份的重要考慮因素之一是決定在ZRM和遠程MySQL服務器之間建立哪種連接類型。 ZRM為基於套接字的連接提供了一個插件,為基於SSH的連接提供了另一個插件。 ZRM的靈活體系結構允許用戶編寫自己的插件。

顧名思義,套接字複製插件建立了一個套接字,該套接字通過基於IP的網絡在ZRM和MySQL之間提供通信。套接字複製插件要求xinetd服務在MySQL服務器上運行,並且默認端口25300是打開的。如果需要,備份管理員可以更改端口。套接字複製插件不安全,僅在不關心安全性或通過其他方式建立安全性時(例如,在ZRM和遠程MySQL服務器之間建立VPN連接時)才應使用。

SSH複製插件在ZRM和遠程MySQL服務器之間提供了安全通道。它使用公共密鑰加密技術對遠程MySQL服務器和運行ZRM的備份用戶進行身份驗證。 SSH插件需要打開標準TCP端口22並運行SSH守護程序。當確保備份數據的安全性很重要時,SSH複製插件最適合。由於SSH連接需要花費額外的CPU週期進行加密,因此與使用套接字連接進行備份相比,備份性能可能會受到影響。

下表總結了在選擇套接字與SSH複製插件進行MySQL遠程備份時的注意事項:

遠程連接
插入
使用的端口 安全 相對錶現 安裝註釋
SSH副本 22(固定) 提供強大的身份驗證和加密功能,以通過網絡移動備份數據 較低的性能,並且取決於MySQL服務器內存,CPU資源和可用帶寬。 通常,由於備份和恢復之外的其他原因,您可能已經與已經建立的遠程MySQL服務器建立SSH連接。否則,您必須在ZRM和MySQL服務器之間建立SSH連接。
套接字副本 25300(可以更改) 在線備份數據不安全 更高的性能 其他軟件應安裝在MySQL服務器上。例如,對於ZRM 1.1的企業版,請使用MySQL-zrm-enterprise-socket-server-1.1-1.noarch.rpm。對於社區版本,請參見下載頁面以獲取確切的軟件包。

有關更多技術細節,請免費註冊到Zmanda Network並下載本白皮書的完整版本。您將學習如何在幾種常見情況下使用ZRM。例如,對於此用例,我們將提供技術細節,說明如何使用SSH複製插件在網絡上安全且靜態的情況下執行數據備份:

互聯網上的ZRM

此外,我們將提供有關使用套接字複製插件進行更高效的邏輯備份和原始備份的技術細節。

憑藉其豐富的功能,適用於MySQL的ZRM僅僅是一種用於實現備份和恢復策略的工具,該策略可滿足您特定的數據保護需求。 ZRM功能強大且易於使用,但是根據您自己對遠程MySQL服務器的實現以及對備份和恢復的特定要求,您應考慮與ZRM for MySQL提供的每個操作選項相關的所有折衷。

參考文獻:
適用於MySQL的ZRM
ZRM for MySQL Wiki
Zmanda論壇