MyDumper - AWS 規定指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

MyDumper

MyDumper(GitHub) 是開放原始碼的邏輯移轉工具,其中包含兩個公用程式:

  • 我的轉儲器導出 MySQL 數據庫的一致備份。它支援使用多個 parallel 執行緒來備份資料庫,每個可用 CPU 核心最多一個執行緒。

  • myloader 會讀取 mydump 建立的備份檔案,連線至目標資料庫執行個體,然後還原資料庫。

下圖顯示使用 mydump 備份檔案遷移資料庫所涉及的高階步驟。此架構圖包含三個選項,可將備份檔案從現場部署資料中心遷移至中的 EC2 執行個體 AWS 雲端。

移轉 mydump 備份檔案,並使用 myloader 在資料庫執 AWS 行個體上還原該檔案的圖表。

以下是將資料庫移轉 MyDumper 至的步驟 AWS 雲端:

  1. 安裝我的轉儲器和我的加載器。如需指示,請參閱如何安裝我的載入程式 ()。GitHub

  2. 使用我的轉儲器創建源 MySQL 或 MariaDB 數據庫的備份。如需指示,請參閱如何使用 MyDumper

  3. 使用下列其中一種方法,將備份檔案移至中的 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 檔案閘道傳輸備份檔案

  4. 使用 myloader 還原目標資料庫執行處理上的備份。如需指示,請參閱我的載入器用法 (GitHub)。

  5. (選擇性) 您可以設定來源資料庫與目標資料庫執行處理之間的複製。您可以使用二進位記錄 (binlog) 複寫來減少停機時間。如需詳細資訊,請參閱下列內容:

優點

  • 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 執行緒。這有助於導出過程更快地運行。

  • 請勿在高峰營業時間匯出資料庫。避免尖峰時段可以在資料庫匯出期間穩定主要生產資料庫的效能。