使用 mydumper/myloader 將大型資料庫遷移至適用於 MySQL 的 Azure 資料庫
適用於 MySQL 的 Azure 資料庫是一個受控服務,您可用來在雲端執行、管理及調整高可用性 MySQL 資料庫。 若要將大於 1 TB 的 MySQL 資料庫移轉至適用於 MySQL 的 Azure 資料庫,請考慮使用 mydumper/myloader 等社群工具,以取得下列效益:
- 採平行處理,有助於減少移轉時間。
- 避免耗費資源的字元集轉換常式,提升效能。
- 統一資料表、中繼資料等不同檔案的輸出格式,方便檢視/剖析資料。 維護所有執行緒的快照集,維持一致性。
- 主要和複本記錄位置精確。
- 易於管理;支援與 Perl 相容的規則運算式 (PCRE),可指定包含及排除資料庫和資料表。
- 結構描述與資料搭配運作。 無須比照其他邏輯移轉工具個別處理。
本快速入門說明如何使用 mydumper/myloader 安裝、備份和還原 MySQL 資料庫。
必要條件
開始移轉 MySQL 資料庫前,您必須:
使用 Azure 入口網站建立適用於 MySQL 的 Azure 資料庫伺服器。
使用 Azure 入口網站 (最好是 Ubuntu),建立以 Linux 執行的 Azure VM。
注意
安裝工具前,請先考慮下列幾點:
- 若來源為內部部署,且與 Azure 高頻寬連線 (使用 ExpressRoute),請考慮在 Azure VM 上安裝此工具。
- 若來源與目標伺服器間有頻寬問題,請考慮在靠近來源伺服器處安裝 mydumper,在靠近目標伺服器處安裝 myloader。 您可使用 Azcopy 工具,將內部部署或其他雲端解決方案的資料移至 Azure。
- 若來源為內部部署,且與 Azure 高頻寬連線 (使用 ExpressRoute),請考慮在 Azure VM 上安裝此工具。
安裝 mysql 用戶端,請執行下列步驟:
- 執行下列命令,在以 Linux 執行的 Azure VM 上更新套件索引:
sudo apt update
- 執行下列命令安裝 mysql 用戶端套件:
sudo apt install mysql-client
安裝 mydumper/myloader
若要安裝 mydumper/myloader,請執行下列步驟。
執行下列命令,根據您的作業系統發行版本下載適當的 mydumper/myloader 套件:
wget https://github.com/maxbube/mydumper/releases/download/v0.10.1/mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
注意
$ (lsb_release -cs) 有助於識別您的發行版本。
若要安裝 mydumper 的 .deb 套件,請執行下列命令:
sudo dpkg -i mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
提示
由於安裝程式不同,因此用於安裝套件的命令會依您的 Linux 發行版本而不同。 mydumper/myloader 適用於下列發行版本:Fedora、RedHat、Ubuntu、Debian、openSUSE 和 MacOSX。 如需詳細資訊,請參閱如何安裝 mydumper
使用 mydumper 建立備份
若要使用 mydumper 建立備份,請執行下列命令:
mydumper --host=<servername> --user=<username> --password=<Password> --outputdir=./backup --rows=100000 --compress --build-empty-files --threads=16 --compress-protocol --trx-consistency-only --ssl --regex '^(<Db_name>\.)' -L mydumper-logs.txt
此命令會使用下列變數:
-host: 要連線到的主機
-user: 具有必要許可權的用戶名稱
-password: 用戶密碼
-rows: 嘗試將數據表分割成這個多列的區塊
-outputdir: 要傾印輸出檔案的目錄
-regex: 資料庫比對的正則表達式。
-trx-consistency-only: 僅限交易一致性
-threads: 要使用的線程數目,預設為 4。 建議使用等於電腦虛擬核心 2 倍的值。
注意
如需其他選項的詳細資訊,您可搭配使用 mydumper,執行下列命令:mydumper --help。 如需詳細資訊,請參閱mydumper\myloader 文件
若要平行傾印多個資料庫,則可修改 RegEx 變數,如下列範例所示:regex '^ (DbName1.|DbName2.)
使用 myloader 還原您的資料庫
若要還原使用 mydumper 備份的資料庫,請執行下列命令:
myloader --host=<servername> --user=<username> --password=<Password> --directory=./backup --queries-per-transaction=500 --threads=16 --compress-protocol --ssl --verbose=3 -e 2>myloader-logs.txt
此命令會使用下列變數:
- -host: 要連線到的主機
- -user: 具有必要許可權的用戶名稱
- -password: 用戶密碼
- -directory: 儲存備份的位置。
- -queries-per-transaction: 建議將 設定為值不超過 500
- -threads: 要使用的線程數目,預設為 4。 建議使用等於電腦虛擬核心 2 倍的值
提示
如需其他選項的詳細資訊,您可搭配使用 myloader,執行下列命令:myloader --help
還原資料庫後,建議您一律驗證來源與目標資料庫資料的一致性。
注意
如有任何關於 mydumper/myloader 工具的問題或意見反應,請於此處提交。