為 SQL Server 適用的 Cloud SQL 來源建立遷移工作

本頁面說明如何使用 Google Cloud CLI,為 SQL Server 適用的 Cloud SQL 來源建立遷移工作。如要進一步瞭解如何使用資料庫遷移服務,在 SQL Server 適用的 Cloud SQL 執行個體之間遷移資料,請參閱「 SQL Server 適用的 Cloud SQL 來源遷移指南」。

事前準備

  1. 請確認您符合下列規定:
    • 您有 Cloud Storage bucket,用於存放 SQL Server 備份檔案。
    • 來源執行個體有來源連線設定檔。
    • 您已建立並設定目的地 SQL Server 適用的 Cloud SQL 執行個體,且該執行個體具備目的地連線設定檔。
  2. 在 Google Cloud 控制台的專案選取器頁面,選取或 建立 Google Cloud 專案。

    前往專案選取器

  3. 啟用資料庫遷移服務、Compute Engine、Cloud Storage 和 Cloud SQL Admin API。

    啟用 API

必要的角色

如要取得在資料庫遷移服務建立遷移工作的權限,請要求管理員授予您專案的下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「 管理存取權」。

這些預先定義的角色具備必要權限,可透過資料庫遷移服務執行同質 SQL Server 遷移作業。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要使用資料庫遷移服務執行同質 SQL Server 遷移作業,必須具備下列權限:

  • datamigration.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • cloudsql.instances.create
  • cloudsql.instances.get
  • cloudsql.instances.list
  • cloudsql.databases.get
  • cloudsql.databases.delete
  • cloudsql.operations.get
  • compute.machineTypes.list
  • compute.machineTypes.get
  • compute.projects.get
  • storage.buckets.create
  • storage.buckets.list
  • storage.objects.list

您或許還可透過 自訂角色或其他 預先定義的角色取得這些權限。

定義設定並建立遷移工作

gcloud

這個範例使用選用的 --no-async 旗標,因此所有作業都會同步執行。這表示某些指令可能需要一段時間才能完成。您可以略過 --no-async 旗標,以非同步方式執行指令。如果使用,則需要使用 gcloud database-migration operations describe 指令,確認作業是否成功。

使用下列任何指令資料前,請先替換以下項目:

  • MIGRATION_JOB_ID:遷移工作的機器可讀 ID。您可以使用這個值,透過資料庫遷移服務 Google Cloud CLI 指令或 API 執行遷移工作。
  • REGION:要儲存遷移工作的區域 ID。
  • MIGRATION_JOB_NAME:遷移工作的人類可讀名稱。這個值會顯示在 Google Cloud 控制台的資料庫遷移服務中。
  • SOURCE_CONNECTION_PROFILE_ID:來源連線設定檔的機器可讀 ID。
  • DESTINATION_CONNECTION_PROFILE_ID 替換為目的地連線設定檔的機器可讀 ID。
  • DESTINATION_PROJECT_ID 替換為 Google Cloud 專案 ID,其中包含目的地 SQL Server 適用的 Cloud SQL 執行個體。這個專案必須與您啟用資料庫遷移服務 API 及建立遷移工作的專案相同。
  • COMMA_SEPARATED_DATABASE_ID_LIST:以半形逗號分隔的清單,列出要從備份檔案遷移的 SQL Server 資料庫 ID。

執行下列指令:

Linux、macOS 或 Cloud Shell

gcloud database-migration migration-jobs \
create MIGRATION_JOB_ID \
  --no-async \
  --region=REGION \
  --display-name=MIGRATION_JOB_NAME \
  --source=SOURCE_CONNECTION_PROFILE_ID \
  --destination=DESTINATION_CONNECTION_PROFILE_ID \
  --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST \
  --project=DESTINATION_PROJECT_ID \
  --type=CONTINUOUS

Windows (PowerShell)

gcloud database-migration migration-jobs `
create MIGRATION_JOB_ID `
  --no-async `
  --region=REGION `
  --display-name=MIGRATION_JOB_NAME `
  --source=SOURCE_CONNECTION_PROFILE_ID `
  --destination=DESTINATION_CONNECTION_PROFILE_ID `
  --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST `
  --project=DESTINATION_PROJECT_ID `
  --type=CONTINUOUS

Windows (cmd.exe)

gcloud database-migration migration-jobs ^
create MIGRATION_JOB_ID ^
  --no-async ^
  --region=REGION ^
  --display-name=MIGRATION_JOB_NAME ^
  --source=SOURCE_CONNECTION_PROFILE_ID ^
  --destination=DESTINATION_CONNECTION_PROFILE_ID ^
  --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST ^
  --project=DESTINATION_PROJECT_ID ^
  --type=CONTINUOUS

您應該會收到類似以下的回應:

Waiting for migration job [MIGRATION_JOB_ID]
to be created with [OPERATION_ID]

Waiting for operation [OPERATION_ID] to complete...done.

Created migration job MIGRATION_JOB_ID [OPERATION_ID]
結果

遷移工作現已建立。您可以繼續進行遷移程序:

後續步驟