使用適用於 MySQL 的 Azure 資料庫匯入 CLI 移轉內部部署 MySQL 伺服器

已完成

是時候將內部部署 MySQL 伺服器移轉至適用於 MySQL 的 Azure 資料庫彈性伺服器了。 您已決定執行離線移轉,因為網路設定會防止來源伺服器與目標伺服器直接連線。 下圖摘要說明此程序:

azure-import-cli-migration-procedure 的螢幕擷取畫面。

必要條件

  • 在來源伺服器上,確定您已設定下列設定:

    • lower_case_table_names = 1  
      innodb_file_per_table = ON
      innodb_page_size = 16348 (MySQL Default)
      
    • 系統資料表空間名稱應該是 ibdata1

    • 系統資料表空間大小應大於或等於 12 MB。 (MySQL 預設值)

    • 僅支援 INNODB 引擎。

  • 您需要 Azure Blob 儲存體容器。 如果您沒有適當的容器,請使用本快速入門建立一個。 您需要 Azure Blob 容器的共用存取簽章 (SAS) 權杖。 若要將效能最佳化,請將儲存體和目標彈性伺服器放在相同區域中。

  • 您必須關閉應用程式,以免對資料庫進行任何變更。

程序

  1. 對 MySQL 資料庫進行實體備份。 我們使用 Percona 的開放原始碼 XtraBackup 工具。

    1. 根據這些指示安裝工具 (適用於 MySQL 8.0)。

    2. 建立完整備份;例如:

      xtrabackup --backup --target-dir=/data/backups/
      
  2. 遵循這些步驟,將備份檔案上傳至 Azure Blob 儲存體。

  3. 在填入變數後,執行此命令以觸發匯入。 您也可以變更 Standard_D2ds_v4 來修改計算大小。

    1. az mysql flexible-server import create --data-source-type "azure_blob" --data-source $BLOB_DATA_URL --data-source-backup-dir "mysql_backup_percona" –-data-source-token $SAS_TOKEN --resource-group $RESOURCE_GROUP --name $FLEXIBLE_SERVER_NAME –-sku-name Standard_D2ds_v4 --tier GeneralPurpose –-version 8.0 -–location westus --auto-scale-iops Enabled
      
    2. 匯入時間應該會隨備份檔案大小成比例增加。 1 GiB 的備份檔案需要大約半分鐘才能匯入,1 TB 的檔案則大約需要 23 分鐘。

請記住下列限制:

  • 使用者和權限不會移轉。 您必須手動傾印使用者和權限,才能在匯入作業完成後移轉登入。
  • 匯入期間無法使用高可用性,因此請在移轉完成後啟用高可用性。

在移轉使用者和權限後,請將您的應用程式連線到彈性伺服器,移轉便會完成。

提示

或者,如果您執行的是線上移轉,則會和先前說明的程序一樣已經執行匯出和匯入,然後設定從來源到目標的複寫。 當目標完全趕上來源時,您會先完全移轉應用程式,再關閉來源資料庫。