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

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

事前準備

  1. 請確認符合下列規定:
    • 您有儲存 SQL Server 備份檔案的 Cloud Storage bucket。
    • 您擁有來源執行個體的來源連線設定檔。
    • 您已建立並設定目的地 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]
結果

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

後續步驟