為 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 目的地 SQL Server 適用的 Cloud SQL 執行個體所在的專案 ID。這個專案必須與您啟用資料庫遷移服務 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]
結果

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

後續步驟