使用適用於 MySQL 的 Azure 資料庫匯入 CLI 移轉內部部署 MySQL 伺服器
是時候將內部部署 MySQL 伺服器移轉至適用於 MySQL 的 Azure 資料庫彈性伺服器了。 您已決定執行離線移轉,因為網路設定會防止來源伺服器與目標伺服器直接連線。 下圖摘要說明此程序:
必要條件
在來源伺服器上,確定您已設定下列設定:
-
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) 權杖。 若要將效能最佳化,請將儲存體和目標彈性伺服器放在相同區域中。
您必須關閉應用程式,以免對資料庫進行任何變更。
程序
對 MySQL 資料庫進行實體備份。 我們使用 Percona 的開放原始碼 XtraBackup 工具。
遵循這些步驟,將備份檔案上傳至 Azure Blob 儲存體。
在填入變數後,執行此命令以觸發匯入。 您也可以變更 Standard_D2ds_v4 來修改計算大小。
-
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
匯入時間應該會隨備份檔案大小成比例增加。 1 GiB 的備份檔案需要大約半分鐘才能匯入,1 TB 的檔案則大約需要 23 分鐘。
-
請記住下列限制:
- 使用者和權限不會移轉。 您必須手動傾印使用者和權限,才能在匯入作業完成後移轉登入。
- 匯入期間無法使用高可用性,因此請在移轉完成後啟用高可用性。
在移轉使用者和權限後,請將您的應用程式連線到彈性伺服器,移轉便會完成。
提示
或者,如果您執行的是線上移轉,則會和先前說明的程序一樣已經執行匯出和匯入,然後設定從來源到目標的複寫。 當目標完全趕上來源時,您會先完全移轉應用程式,再關閉來源資料庫。