使用 mydumper/myloader 將大型資料庫遷移至適用於 MySQL 的 Azure 資料庫
適用於:適用於 MySQL 的 Azure 資料庫 - 單一伺服器適用於 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 工具的問題或意見反應,請於此處提交。