將內部部署的 MySQL 資料庫移轉至 Azure

已完成

公司決定將內部部署的 MySQL 資料庫移至 Azure MySQL Database,下一步即是規劃移轉內部部署資料庫的方法和選擇移動資料的工具。

您已探索 Azure MySQL Database 如何在 Azure 支援和調整 MySQL,現在將考慮移轉現有內部部署資料庫的方法。

在此單元中,您將了解如何使用 Azure 入口網站,建立 Azure MySQL Database 服務的執行個體。 若需要建立許多此服務的執行個體,您可以使用 Azure 命令列介面編寫流程。

使用入口網站建立 Azure MySQL Database

在 Azure 入口網站中,選取 Azure Marketplace 中的 [資料庫] 命令,再選取 Azure MySQL Database

此影像顯示 Azure Marketplace 中的 Azure MySQL Database 項目

輸入服務的詳細資料。 包括:

  • 伺服器名稱。 伺服器名稱必須為 3 至 63 個字元的唯一名稱,且僅包含小寫字母、數字和連字號。
  • 資料來源。 若您要建立新的伺服器以進行移轉,請選取 [無]。 [備份] 選項可讓您從 Azure MySQL Database 的另一個執行個體中,還原備份至此服務。
  • 管理員使用者名稱。 這是將透過系統管理權限所建立的使用者帳戶名稱。 Azure 建立某些帳戶以供自用,而其他名稱則有所限制;您不可以使用 azure_superuseradminadministratorrootguestpublic
  • 密碼: 名稱必須介於 8 到 128 個字元之間。 名稱應包含大小寫字母、數字和非英數的字元組合。 Azure MySQL Database 目前僅支援密碼驗證;與 Microsoft Entra ID 的整合尚未開放使用。
  • 版本。 選取對應至要移轉之內部部署資料庫的版本。
  • 計算 + 儲存體。 選取 [設定伺服器] 以設定定價層,並指定服務所需的資源。 第 1 單元涵蓋了這些選項的內容。 請記住,若選取 [一般用途] 或 [記憶體最佳化] 的定價層,您可以在之後擴大或縮減虛擬處理器的核心數目。 然而,您無法減少儲存體空間;儲存體空間僅可在建立伺服器後增加。

顯示 Azure 入口網站中適用於 MySQL 的 Azure 資料庫之範例設定的螢幕擷取畫面。

選取 [檢閱 + 建立] 來部署服務。 部署會需要幾分鐘的時間。

部署服務後,選取 [連線安全性] 選項,並新增適當的防火牆規則以允許用戶端連線,如第 1 單元用戶端連線主題所述。 您也必須選取 [允許存取 Azure 服務] 選項。

使用 Azure 命令列介面建立 Azure MySQL Database 的執行個體

您可使用 az mysql server create 命令建立 Azure MySQL Database 的執行個體。 下列陳述式展示建立 MySQL 執行個體的範例。 大部分參數一目了然,除下列項目之外:

  • sku-name。 您以定價層 (B 為基本、GP 為一般用途、MO 為記憶體最佳化)、計算世代 (Gen4 或 Gen5) 與虛擬 CPU 核心數目的組合來建構此參數。 在下列範例中,伺服器是使用一般用途定價層所建立,並具有 Gen5 世代的四個 CPU 核心。
  • storage-size。 此為所需的磁碟儲存體,以 MB 為單位。 下列範例配置 10 GB。
az mysql server create \
  --name contoso-MySQL-server \
  --resource-group MySQLrg \
  --admin-user contosoadmin \
  --admin-password 7Hh7*ku5k$$£jhk \
  --sku-name GP_Gen5_4 \
  --storage-size 10240

執行離線移轉

離線移轉會在特定時間點建立源資料庫的快照,並將該資料複製到目標資料庫。 建立快照集之後對來源資料所做的任何變更,將不會反映在目標資料庫中。

若想執行離線移轉至 Azure MySQL Database,您至少有兩個選項:

匯出和匯入

您可以從 MySQL 匯出資料庫,並使用如 MySQL Workbench 等工具,將資料匯入 Azure MySQL Database。 這在幾個情節中很實用:

  • 您想選取要匯入的資料庫。
  • 您想選取要匯出和匯入的資料庫物件,包含檢視、預存程序、限制式和函式。
  • 您也想從其他來源移轉資料。 例如,您需要從文字檔新增資料,並使用 mysqlimport,以資料表的形式新增這些資料至資料庫。

您可以使用 MySQL Workbench 執行匯入和匯出。 從 [伺服器] 選單選取 [資料匯出] 或 [資料匯入]

注意

您也可以使用 mysqldump,在資料庫名稱後方列出資料表名稱來加以指定。

如需更多詳細資訊,請參閱使用匯入和匯出移轉您的 MySQL 資料庫

傾印和還原

使用傾印和還原,來有效地移動整個資料庫。

使用傾印和還原須考慮數個事項:

  • 使用 exclude-triggers 選項,預防還原期間啟動觸發程序。
  • 使用 single-transaction 選項,在單一交易中備份整個資料庫。
  • 使用 disable-keys 選項,在流程中停用外部索引鍵限制式的啟動。
  • 使用 defer-table-indexes 選項,以延遲索引建立直到還原完成為止。

如需 mysqldump 的詳細資訊,請參閱〈Mysqldump — 資料庫備份程式〉(英文)。

注意

您也可使用 mysqldump,在資料庫名稱後方列出資料表名稱來加以指定。

Azure 資料庫移轉服務 (DMS)

除了離線移轉至適用於 MySQL 的 Azure 資料庫之外,DMS 還支援跨區域、跨資源群組和跨訂用帳戶移轉,因此您可以為目標伺服器選取不同於為來源伺服器所指定的區域、資源群組和訂用帳戶。

使用備份和還原來移轉

使用備份和還原方法,執行下列步驟以移轉資料庫。

  1. 使用 mysqldump 命令,將資料匯出至另一個檔案:

    mysqldump -h [host name] -u [username] -p[password] [database name] > db_data.sql
    

    目前,db_data.sql 是您使用文字編輯器修改的 SQL 指令碼。

  2. 在 Azure MySQL Database 中建立目標資料庫。 您可以使用 Azure 命令列介面來執行:

    az mysql db create \
        --name [database name] \
        --server-name [server name] \
        --resource-group [azure resource group]
    
  3. 使用 mysql 命令將資料匯入目標資料庫:

    mysql -h [host name] -u [username] -p[password] [database name] < db_data.sql
    

執行線上移轉

DMS 也支援線上移轉至適用於 MySQL 的 Azure 資料庫。 針對線上移轉,建議您為目標彈性伺服器選取 [一般用途 16 虛擬核心] 計算,以實現更快速的移轉。 請根據下表中的詳細資料,在移轉完成後,調整回目標伺服器所需的計算大小。

單一伺服器定價層 單一伺服器虛擬核心 彈性伺服器計算大小 彈性伺服器計算層
基本 1 可高載 Standard_B1s
基本 2 可高載 Standard_B2s
一般用途 4 一般用途 標準 D4ds_v4
一般用途 8 一般用途 標準 D8ds_v4

若要深入了解如何線上移轉至適用於 MySQL 的 Azure 資料庫,請參閱教學課程:透過 Azure 入口網站,將適用於 MySQL 的 Azure 資料庫 - 單一伺服器移轉至線上使用 DMS 的彈性伺服器。