本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
MyDumper
MyDumper
-
我的轉儲器導出 MySQL 數據庫的一致備份。它支援使用多個 parallel 執行緒來備份資料庫,每個可用 CPU 核心最多一個執行緒。
-
myloader 會讀取 mydump 建立的備份檔案,連線至目標資料庫執行個體,然後還原資料庫。
下圖顯示使用 mydump 備份檔案遷移資料庫所涉及的高階步驟。此架構圖包含三個選項,可將備份檔案從現場部署資料中心遷移至中的 EC2 執行個體 AWS 雲端。
以下是將資料庫移轉 MyDumper 至的步驟 AWS 雲端:
-
安裝我的轉儲器和我的加載器。如需指示,請參閱如何安裝我的載
入程式 ()。GitHub -
使用我的轉儲器創建源 MySQL 或 MariaDB 數據庫的備份。如需指示,請參閱如何使用 MyDumper
。 -
使用下列其中一種方法,將備份檔案移至中的 EC2 執行個體: AWS 雲端
方法 3A — 將 Amazon FSx 或 Amazon 彈性檔案系統 (Amazon EFS) 檔案系統掛載到執行資料庫執行個體的現場部署伺服器。您可以使用 AWS Direct Connect 或 AWS VPN 來建立連接。您可以直接將資料庫備份到掛接的檔案共用,或透過兩個步驟執行備份,方法是將資料庫備份到本機檔案系統,然後將其上傳到掛接的 FSx 或 EFS 磁碟區。接下來,將 Amazon FSx 或 Amazon EFS 檔案系統 (也掛接在現場部署伺服器上) 掛載到 EC2 執行個體上。
方法 3B — 使用 AWS CLI、 AWS 開發套件或 Amazon S3 REST API 將備份檔案從現場部署伺服器直接移至 S3 儲存貯體。如果目標 S3 儲存貯體位於離資料中心很遠的地方,您可以使用 Amazon S3 Transfer Acceleration 更快速地傳輸檔案。 AWS 區域 使用 s3fs-fuse
檔案系統在 EC2 執行個體上掛載 S3 儲存貯體。 方法 3C — 在現場部署資料中心安裝 AWS DataSync 代理程式,然後AWS DataSync使用將備份檔案移至 Amazon S3 儲存貯體。使用 s3fs-fuse
檔案系統在 EC2 執行個體上掛載 S3 儲存貯體。 注意
您也可以使用 Amazon S3 檔案閘道將大型資料庫備份檔案傳輸到 AWS 雲端. 如需詳細資訊,請參閱本指南中的 使用 Amazon S3 檔案閘道傳輸備份檔案。
-
使用 myloader 還原目標資料庫執行處理上的備份。如需指示,請參閱我的載入器用法
(GitHub)。 -
(選擇性) 您可以設定來源資料庫與目標資料庫執行處理之間的複製。您可以使用二進位記錄 (binlog) 複寫來減少停機時間。如需詳細資訊,請參閱下列內容:
-
在 MySQL 文件中設定複製來源組態
-
對於 Amazon Aurora,請參閱以下內容:
-
對於 Amazon RDS,請參閱以下內容:
-
在 Amazon RDS 文件中使用 MariaDB 複寫
-
對於 Amazon EC2,請參閱以下內容:
-
在 MySQL 文件中設定二進位記錄檔以位置為基礎的複製
-
在 MySQL 文件中設定複本
-
在 MariaDB 文件中設定複寫
-
-
優點
-
MyDumper 通過使用多線程支持並行處理,從而提高了備份和還原操作的速度。
-
MyDumper 避免昂貴的字元集轉換常式,這有助於確保程式碼的高效率。
-
MyDumper 透過使用傾印資料表和中繼資料的個別檔案來簡化資料檢視和剖析。
-
MyDumper 跨所有執行緒維護快照,並提供主要和次要記錄的準確位置。
-
您可以使用 Perl 相容規則運算式 (PCRE) 來指定是否要包含或排除資料表或資料庫。
限制
-
如果您的資料轉換程序需要一般格式而非 SQL 格式的中繼傾印檔案,您可以選擇不同的工具。
-
myloader 不會自動匯入資料庫使用者帳戶。如果您要將備份還原到 Amazon RDS 或 Aurora,請重新建立具有所需許可的使用者。如需詳細資訊,請參閱 Amazon RDS 文件中的主要使用者帳戶權限。如果要將備份還原到 Amazon EC2 資料庫執行個體,則可以手動匯出來源資料庫使用者帳戶並將其匯入 EC2 執行個體。
最佳實務
-
設定 mydumper 將每個資料表分割成區段,例如每個區段中的 10,000 個資料列,並將每個區段寫入個別的檔案中。這使得以後可以 parallel 導入數據。
-
如果您使用的是 InnoDB 引擎,請使用該
--trx-consistency-only
選項將鎖定最小化。 -
使用 mydumper 匯出資料庫可能會變成讀取密集型,而且此程序可能會影響生產資料庫的整體效能。如果您有複本資料庫執行個體,請從複本執行匯出程序。從複本執行匯出之前,請停止複寫 SQL 執行緒。這有助於導出過程更快地運行。
-
請勿在高峰營業時間匯出資料庫。避免尖峰時段可以在資料庫匯出期間穩定主要生產資料庫的效能。