探索移轉工具選項

已完成

有數個工具可用來規劃並將資料移轉至適用於 MySQL 的 Azure 資料庫彈性伺服器。 每個選項都有其優缺點,如下列各節所述。

使用 Azure Migrate 探索及評估 MySQL 工作負載

Azure Migrate 提供集中式中樞,以探索、評估及移轉內部部署基礎結構,包括裝載在實體環境中的伺服器、資料庫和 Web 應用程式,大規模地移轉至 Azure 平台即服務 (PaaS) 和基礎結構即服務 (IaaS) 目標。 Azure Migrate 中的 MySQL 探索和評估功能 (預覽) 可讓您在規劃階段協助您,方法是讓您能夠:

  • 在您的環境中探索 MySQL 執行個體及其屬性,
  • 評估移轉至適用於 MySQL 的 Azure 資料庫 – 彈性伺服器的整備程度,以及
  • 接收在適用於 MySQL 的 Azure 資料庫 – 彈性伺服器上裝載 MySQL 工作負載的適當計算和儲存體 SKU 建議,以及相關聯的成本。

適用於 MySQL 的 Azure 資料庫匯入 CLI

適用於 MySQL 的 Azure 資料庫匯入是單一 CLI 命令,可讓您順暢地將 MySQL 內部部署或虛擬機器 (VM) 工作負載移轉至適用於 MySQL 的 Azure 資料庫 - 彈性伺服器。 它提供簡單快速的移轉途徑。 命令根據使用者輸入佈建目標彈性伺服器,然後將儲存在 Azure Blob 儲存體帳戶之來源伺服器的實體備份檔案 (使用 Percona XtraBackup 取得),還原到目標彈性伺服器執行個體。

CLI 命令為:az mysql flexible-server --import

評估匯入 CLI 時,請務必考慮下列考量事項。

  • 來源伺服器設定必須包含這些參數和值:

    lower_case_table_names = 1
    innodb_file_per_table = ON
    
  • 系統資料表空間名稱應為 ibdata1,大小至少等於 12 MB (MySQL 預設)。

  • 僅支援 InnoDB 引擎進行移轉。

  • 來源伺服器上的某些元素,例如設定 (防火牆、使用者、權限) 不會移轉。

  • 移轉期間停用高可用性 (HA),以將效能最佳化。 移轉完成後,請務必重新啟用高可用性。

Azure 資料庫移轉服務

Azure 資料庫移轉服務是完全受管理的服務,可協助您簡化、引導和自動化資料庫移轉至 Azure 資料平台。

Azure 資料庫移轉服務透過建立和執行可重複的移轉專案運作。 來源的範圍涵蓋內部部署工作負載,以及雲端式工作負載,例如 Amazon RDS MySQL。 雖然 Azure 資料庫移轉服務技術上是離線移轉工具,但它使用 MySQL binlog 執行近乎零停機的線上移轉。

mysqldump

通常與 MySQL 一起安裝的 mysqldump 用戶端公用程式是資料庫備份工具。 您可以使用 mysqldump,將來源資料庫的結構描述和內容傾印到 SQL 陳述式。 然後,您可依目前方式執行這些陳述式,將完整或部分內容還原至目標資料庫。

針對大型資料集,執行 SQL 陳述式還原傾印可能效能不佳。 例如,索引以陳述式為單位進行更新,可能使磁碟 I/O 效能多載。 因此,您可以將 mysqldumpmydumpermyloader 等工具配對,加速移轉,而且這些工具已針對大量資料移轉最佳化。 使用 mysqldump 重新建立資料庫結構描述,亦即目標資料庫中的登陸區域,可容納匯入的資料。

有時候,您必須自訂移轉資料傳輸。 您不妨匯出一部分資料進行測試,或取代客戶的目標資料庫資料。 移轉前,您甚至可以修改資料,例如修訂個人資料,以偵錯測試資料庫中的問題。

在這些案例中,mysqldump 提供的彈性最大。 因為它會匯出包含 SQL 陳述式的檔案,因此在目標伺服器執行陳述式之前,您可以選擇如何修改資料。

mydumper 和 myloader

mydumpermyloader 是開放原始碼 MySQL 備份工具 MyDumper 套件的一部分。 不同於將整個結構描述輸出至 SQL 陳述式,重新以線性方式執行的 mysqldump 工具,MyDumper 工具會利用平行處理原則,並提供各項優點,例如依資料表和人類可讀取的格式使用不同的檔案,以及維持精確的來源和目標二進位記錄位置。

若要移轉大型資料庫,建議使用 mydumpermyloader,因為這些工具使用平行處理原則,提供 10 倍以上效能。

針對 Linux,這些工具以二進位版本提供,針對 macOS 則是以 rpm 和 deb 套件的形式透過 Homebrew 提供。 在其他平台,您必須從增加複雜度的來源編譯工具。

MySQL Workbench

MySQL Workbench 提供圖形使用者介面 (GUI) 處理 MySQL,而且可存取許多工具,包括用於資料庫移轉的工具。 MySQL Workbench 在 MySQL 的 Community 版和商業版提供,如 MySQL Workbench 功能 清單所列。

MySQL binlog

mysqlbinlog 工具使用 MySQL 二進位記錄進行資料庫變更事件的記錄,例如資料表修改或資料插入、更新與刪除。 每筆變更都是使用累進增加的位置識別,而且您可以使用 mysqlbinlog 工具檢查及操作每筆變更。

您可以使用二進位記錄作為線上和離線移轉的一部分:

  • 若為線上移轉時,二進位記錄是將即時資料變更從來源複製到目標的關鍵機制。
  • 若為離線移轉,二進位記錄會精確產生自先前移轉快照集以來的變更,支援累加移轉。

二進位記錄維護需要額外的處理和儲存資源。