管理遷移工作

在 Google Cloud 控制台中,您可以對 狀態相同的遷移作業執行批次動作。您可以在 Google Cloud 控制台和使用 Google Cloud CLI,對單一遷移作業執行動作。

您可以對遷移工作執行下列動作:

動作 說明
編輯

您可以編輯非草稿的遷移工作,進行下列變更:

開始 啟動不處於「執行中」或「啟動中」狀態的遷移工作。請參閱 遷移工作狀態
停止 停止執行中的遷移工作。資料移動作業已暫停。 遷移工作狀態會先變更為 Stopping, 然後變更為 Stopped。您可以繼續、刪除或升級已停止的遷移工作。
繼續 如果在遞增載入期間停止遷移工作,稍後可以繼續執行。繼續執行移轉工作時,資料庫移轉服務會擷取移轉工作停止期間累積的所有交易記錄檔。
重新啟動

如果遷移工作發生錯誤,無法繼續複製資料,您可以重新啟動該工作。

重新啟動遷移工作後會發生什麼情況,取決於遷移工作失敗的原因:

  • 如果遷移工作失敗,且無法從錯誤中復原,系統會重試整個遷移程序,包括初始載入完整備份檔案。
  • 如果一或多個來源或目的地資料庫發生錯誤,導致複寫作業失敗,重新啟動遷移作業會清除目的地資料庫中的所有資料。
  • 如果在開始遷移後為其他資料庫建立新資料夾,並 將其新增至選取的遷移資料庫,重新啟動遷移作業時,系統也會將新資料庫複製到目的地執行個體。
刪除 您可以刪除遷移工作。結果取決於工作狀態:
  • 如果遷移工作處於 Completed 狀態,系統會從遷移工作清單中刪除記錄。
  • 如果遷移工作處於任何其他狀態,您可以選擇刪除目的地 Cloud SQL 執行個體/主要執行個體配對。
宣傳 在遷移過程中,目的地 SQL Server 適用的 Cloud SQL 資料庫會進入復原模式,由資料庫移轉服務全面管理。您必須先升級遷移工作或所選資料庫,才能對目的地資料庫執行任何讀取或寫入作業。詳情請參閱 升級遷移作業
查看 您可以查看遷移工作中的特定資料庫詳細資料,或查看您選取要遷移的所有資料庫

啟動遷移工作

完整建立遷移工作後 (也就是未儲存為草稿),您隨時可以啟動工作,開始遷移資料。

如要啟動遷移作業,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「遷移作業」頁面。

    前往「遷移工作」

  2. 在「Jobs」分頁中,按一下要啟動的遷移工作顯示名稱。

    系統會開啟遷移工作詳細資料頁面。

  3. 按一下「啟動」
  4. 在對話方塊中,按一下「開始」

gcloud

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

  • MIGRATION_JOB_ID,並提供遷移工作 ID。

    如果您不知道 ID,可以使用 gcloud database-migration migration-jobs list 指令列出特定區域中的所有遷移工作,並查看其 ID。

  • REGION,其中包含儲存連線設定檔的區域 ID。

執行下列指令:

Linux、macOS 或 Cloud Shell

gcloud database-migration migration-jobs \
start MIGRATION_JOB_ID \
  --region=REGION

Windows (PowerShell)

gcloud database-migration migration-jobs `
start MIGRATION_JOB_ID `
  --region=REGION

Windows (cmd.exe)

gcloud database-migration migration-jobs ^
start MIGRATION_JOB_ID ^
  --region=REGION

結果

這項動作會以非同步方式執行。 因此,這項指令會傳回代表長期執行作業的「作業實體」

done: false
metadata:
  '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata
  apiVersion: v1
  createTime: '2024-02-20T12:20:24.493106418Z'
  requestedCancellation: false
  target: MIGRATION_JOB_ID
  verb: start
name: OPERATION_ID
如要查看作業是否成功,可以查詢傳回的作業物件, 或檢查遷移作業的狀態:

停止遷移工作

您隨時可以停止正在執行的遷移作業,步驟如下:

控制台

  1. 前往 Google Cloud 控制台的「遷移作業」頁面。

    前往「遷移工作」

  2. 在「Jobs」分頁中,按一下要啟動的遷移工作顯示名稱。

    系統會開啟遷移工作詳細資料頁面。

  3. 按一下「停止」
  4. 在對話方塊中,按一下「停止」

gcloud

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

  • MIGRATION_JOB_ID,並提供遷移工作 ID。

    如果您不知道 ID,可以使用 gcloud database-migration migration-jobs list 指令列出特定區域中的所有遷移工作,並查看其 ID。

  • REGION,其中包含儲存連線設定檔的區域 ID。

執行下列指令:

Linux、macOS 或 Cloud Shell

gcloud database-migration migration-jobs \
stop MIGRATION_JOB_ID \
  --region=REGION

Windows (PowerShell)

gcloud database-migration migration-jobs `
stop MIGRATION_JOB_ID `
  --region=REGION

Windows (cmd.exe)

gcloud database-migration migration-jobs ^
stop MIGRATION_JOB_ID ^
  --region=REGION

結果

這項動作會以非同步方式執行。 因此,這項指令會傳回代表長期執行作業的「作業實體」

done: false
metadata:
  '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata
  apiVersion: v1
  createTime: '2024-02-20T12:20:24.493106418Z'
  requestedCancellation: false
  target: MIGRATION_JOB_ID
  verb: stop
name: OPERATION_ID
如要查看作業是否成功,可以查詢傳回的作業物件, 或檢查遷移作業的狀態:

繼續執行遷移工作

如要繼續 停止的遷移工作,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「遷移作業」頁面。

    前往「遷移工作」

  2. 在「Jobs」分頁中,按一下要啟動的遷移工作顯示名稱。

    系統會開啟遷移工作詳細資料頁面。

  3. 按一下「繼續」
  4. 在對話方塊中,按一下「繼續」

gcloud

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

  • MIGRATION_JOB_ID,並提供遷移工作 ID。

    如果您不知道 ID,可以使用 gcloud database-migration migration-jobs list 指令列出特定區域中的所有遷移工作,並查看其 ID。

  • REGION,其中包含儲存連線設定檔的區域 ID。

執行下列指令:

Linux、macOS 或 Cloud Shell

gcloud database-migration migration-jobs \
resume MIGRATION_JOB_ID \
  --region=REGION

Windows (PowerShell)

gcloud database-migration migration-jobs `
resume MIGRATION_JOB_ID `
  --region=REGION

Windows (cmd.exe)

gcloud database-migration migration-jobs ^
resume MIGRATION_JOB_ID ^
  --region=REGION

結果

這項動作會以非同步方式執行。 因此,這項指令會傳回代表長期執行作業的「作業實體」

done: false
metadata:
  '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata
  apiVersion: v1
  createTime: '2024-02-20T12:20:24.493106418Z'
  requestedCancellation: false
  target: MIGRATION_JOB_ID
  verb: resume
name: OPERATION_ID
如要查看作業是否成功,可以查詢傳回的作業物件, 或檢查遷移作業的狀態:

重新啟動遷移工作

如要重新啟動遷移作業,請執行下列步驟:

控制台

  1. 前往 Google Cloud 控制台的「遷移作業」頁面。

    前往「遷移工作」

  2. 在「工作」分頁中,按一下要重新啟動的遷移工作顯示名稱。

    系統會開啟遷移工作詳細資料頁面。

  3. 執行下列任一項重新啟動動作:
    • 如要重新啟動遷移作業中的所有資料庫,請在遷移工作的工具列上按一下「重新啟動」

      系統會顯示「重新啟動遷移工作」對話方塊。

    • 如要只重新啟動特定資料庫,請使用資料庫名稱旁的核取方塊選取資料庫,然後在「資料庫」分頁中按一下「重新啟動」

      系統會顯示對話方塊,內含您要重新啟動的資料庫數量。

  4. 在對話方塊中,按一下「重新啟動」

gcloud

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

  • MIGRATION_JOB_ID,並提供遷移工作 ID。

    如果您不知道 ID,可以使用 gcloud database-migration migration-jobs list 指令列出特定區域中的所有遷移工作,並查看其 ID。

  • REGION,其中包含儲存連線設定檔的區域 ID。
  • 選用:根據預設,資料庫移轉服務會遷移來源中的所有資料庫。如要只遷移特定資料庫,請使用 --databases-filter 旗標,並以半形逗號分隔清單的形式指定資料庫 ID。

    例如:--databases-filter=my-business-database,my-other-database

    日後您可以使用 gcloud database-migration migration-jobs update 指令,編輯使用 --database-filter flag 建立的遷移作業。

執行下列指令:

Linux、macOS 或 Cloud Shell

gcloud database-migration migration-jobs \
restart MIGRATION_JOB_ID \
  --region=REGION

Windows (PowerShell)

gcloud database-migration migration-jobs `
restart MIGRATION_JOB_ID `
  --region=REGION

Windows (cmd.exe)

gcloud database-migration migration-jobs ^
restart MIGRATION_JOB_ID ^
  --region=REGION

結果

這項動作會以非同步方式執行。 因此,這項指令會傳回代表長期執行作業的「作業實體」

done: false
metadata:
  '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata
  apiVersion: v1
  createTime: '2024-02-20T12:20:24.493106418Z'
  requestedCancellation: false
  target: MIGRATION_JOB_ID
  verb: restart
name: OPERATION_ID
如要查看作業是否成功,可以查詢傳回的作業物件, 或檢查遷移作業的狀態:

更新遷移工作草稿

如要完成建立遷移作業,請執行下列步驟:

控制台

  1. 前往 Google Cloud 控制台的「遷移作業」頁面。

    前往「遷移工作」

  2. 在「草稿」分頁中,按一下要完成建立的遷移作業顯示名稱。

    系統會開啟遷移工作建立精靈。

  3. 完成建立遷移工作。請參閱 建立遷移工作

gcloud

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

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

  • MIGRATION_JOB_ID,並提供遷移工作的機器可讀取 ID。
  • REGION,其中包含要儲存連線設定檔的區域 ID。
  • MIGRATION_JOB_NAME,並為遷移工作提供可理解的名稱。這個值會顯示在 Google Cloud 控制台的資料庫移轉服務中。
  • SOURCE_CONNECTION_PROFILE_ID,並附上來源連線設定檔的機器可讀取 ID。
  • DESTINATION_CONNECTION_PROFILE_ID 目的地連線設定檔的機器可讀取 ID。
  • 差異備份設定:您可以設定遷移工作是否能使用 Cloud Storage bucket 中的差異備份檔案。在指令中加入下列其中一個旗標:
    • --sqlserver-diff-backup,為遷移作業啟用差異備份檔案
    • --no-sqlserver-diff-backup 停用遷移作業的差異備份檔案

    如要進一步瞭解支援的備份檔案,請參閱「 支援的備份檔案類型」。

  • 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 \
  --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 `
  --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 ^
  --type=CONTINUOUS]

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

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

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

Updated migration job MIGRATION_JOB_ID [OPERATION_ID]

在遷移作業中新增或移除資料庫

如要將新資料庫新增至遷移工作,請先在 Cloud Storage 值區中建立新的專用資料夾,然後將備份檔案上傳至該資料夾。請參閱「 設定 Cloud Storage bucket」。

Cloud Storage bucket 中有必要的備份檔案後,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「遷移作業」頁面。

    前往「遷移工作」

  2. 在「Jobs」(工作) 分頁中,按一下遷移工作的顯示名稱。

    系統會開啟遷移工作詳細資料頁面。

  3. 按一下 [編輯]
  4. 在「選取要遷移的資料庫」部分,使用核取方塊選取要新增至遷移工作的新資料庫,或清除要移除的資料庫。
  5. (選用) 如果您使用加密備份,請提供備份的加密金鑰。如要進一步瞭解如何使用加密備份,請參閱「 使用加密備份」。

    請執行下列動作:

    • 在您選取要遷移的資料庫旁,按一下「編輯詳細資料」

      「加密」側邊面板隨即開啟。

    • 使用「加密金鑰」選單選取金鑰。
    • 在「Password」(密碼) 欄位中輸入加密金鑰密碼。
    • 按一下「儲存並結束」

gcloud

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

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

  • MIGRATION_JOB_ID,並提供遷移工作 ID。

    如果您不知道 ID,可以使用 gcloud database-migration migration-jobs list 指令列出特定區域中的所有遷移工作,並查看其 ID。

  • REGION,其中包含儲存連線設定檔的區域 ID。
  • COMMA_SEPARATED_DATABASE_ID_LIST,並以逗號分隔清單的形式列出要從備份檔案遷移的 SQL Server 資料庫 ID。這些 ID 必須與 Cloud Storage 中的 資料庫資料夾名稱相同。

    例如:--sqlserver-databases=my-business-database,my-other-database

執行下列指令:

Linux、macOS 或 Cloud Shell

gcloud database-migration migration-jobs \
update MIGRATION_JOB_ID \
  --region=REGION \
  --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST

Windows (PowerShell)

gcloud database-migration migration-jobs `
update MIGRATION_JOB_ID `
  --region=REGION `
  --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST

Windows (cmd.exe)

gcloud database-migration migration-jobs ^
update MIGRATION_JOB_ID ^
  --region=REGION ^
  --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST

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

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

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

Updated migration job MIGRATION_JOB_ID [OPERATION_ID]

編輯非草稿遷移工作

對於非草稿遷移工作,您可以使用 Google Cloud CLI 變更遷移工作的顯示名稱:

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

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

  • MIGRATION_JOB_ID,並提供遷移工作 ID。

    如果您不知道 ID,可以使用 gcloud database-migration migration-jobs list 指令列出特定區域中的所有遷移工作,並查看其 ID。

  • REGION,其中包含儲存連線設定檔的區域 ID。
  • MIGRATION_JOB_NAME,並為遷移工作提供可理解的名稱。這個值會顯示在 Google Cloud 控制台的資料庫移轉服務中。

執行下列指令:

Linux、macOS 或 Cloud Shell

gcloud database-migration migration-jobs \
update MIGRATION_JOB_ID \
  --region=REGION \
  --display-name=MIGRATION_JOB_NAME 

Windows (PowerShell)

gcloud database-migration migration-jobs `
update MIGRATION_JOB_ID `
  --region=REGION `
  --display-name=MIGRATION_JOB_NAME 

Windows (cmd.exe)

gcloud database-migration migration-jobs ^
update MIGRATION_JOB_ID ^
  --region=REGION ^
  --display-name=MIGRATION_JOB_NAME 

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

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

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

Updated migration job MIGRATION_JOB_ID [OPERATION_ID]

測試遷移工作

執行遷移工作前,您可以先執行測試作業,確認資料庫遷移服務是否能存取所有必要的來源和目的地實體。在 Google Cloud 控制台中,您只能測試在遷移工作建立精靈中建立的草稿遷移工作 (請參閱「建立遷移工作」)。

使用 gcloud CLI,您可以測試已建立但尚未啟動的遷移作業。

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

  • MIGRATION_JOB_ID,並提供遷移工作 ID。

    如果您不知道 ID,可以使用 gcloud database-migration migration-jobs list 指令列出特定區域中的所有遷移工作,並查看其 ID。

  • REGION,其中包含儲存連線設定檔的區域 ID。

執行下列指令:

Linux、macOS 或 Cloud Shell

gcloud database-migration migration-jobs \
verify MIGRATION_JOB_ID \
  --region=REGION

Windows (PowerShell)

gcloud database-migration migration-jobs `
verify MIGRATION_JOB_ID `
  --region=REGION

Windows (cmd.exe)

gcloud database-migration migration-jobs ^
verify MIGRATION_JOB_ID ^
  --region=REGION

結果

這項動作會以非同步方式執行。 因此,這項指令會傳回代表長期執行作業的「作業實體」

done: false
metadata:
  '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata
  apiVersion: v1
  createTime: '2024-02-20T12:20:24.493106418Z'
  requestedCancellation: false
  target: MIGRATION_JOB_ID
  verb: verify
name: OPERATION_ID
如要查看作業是否成功,可以查詢傳回的作業物件, 或檢查遷移作業的狀態:

查看特定資料庫的遷移詳細資料

完整建立遷移工作後 (即未儲存為草稿),您可以使用 Google Cloud CLI 查看該遷移工作中特定資料庫的詳細資料。

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

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

  • MIGRATION_JOB_ID,並提供遷移工作 ID。

    如果您不知道 ID,可以使用 gcloud database-migration migration-jobs list 指令列出特定區域中的所有遷移工作,並查看其 ID。

  • REGION,其中包含儲存連線設定檔的區域 ID。
  • DATABASE_NAME 替換為資料庫名稱。

執行下列指令:

Linux、macOS 或 Cloud Shell

gcloud database-migration objects lookup --migration-job=MIGRATION_JOB_ID \
  --region=REGION --database=DATABASE_NAME

Windows (PowerShell)

gcloud database-migration objects lookup --migration-job=MIGRATION_JOB_ID `
  --region=REGION --database=DATABASE_NAME

Windows (cmd.exe)

gcloud database-migration objects lookup --migration-job=MIGRATION_JOB_ID ^
  --region=REGION --database=DATABASE_NAME

結果

輸出結果會與下列內容相似:

createTime: '2025-03-21T17:05:19.211441641Z'
name: PROJECT_ID
phase: FULL_DUMP
sourceObject:
  database: DATABASE_NAME
  type: DATABASE
state: RUNNING
如要查看作業是否成功,可以查詢傳回的作業物件, 或檢查遷移作業的狀態:

查看特定資料庫的遷移詳細資料

完整建立遷移工作後 (即未儲存為草稿),您可以使用 Google Cloud CLI 列出為該遷移工作選取的所有資料庫,並查看相關詳細資料。

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

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

  • MIGRATION_JOB_ID,並提供遷移工作 ID。

    如果您不知道 ID,可以使用 gcloud database-migration migration-jobs list 指令列出特定區域中的所有遷移工作,並查看其 ID。

  • REGION,其中包含儲存連線設定檔的區域 ID。

執行下列指令:

Linux、macOS 或 Cloud Shell

gcloud database-migration objects list --migration-job=MIGRATION_JOB_ID \
  --region=REGION

Windows (PowerShell)

gcloud database-migration objects list --migration-job=MIGRATION_JOB_ID `
  --region=REGION

Windows (cmd.exe)

gcloud database-migration objects list --migration-job=MIGRATION_JOB_ID ^
  --region=REGION

結果

輸出結果會與下列內容相似:

Waiting for migration job MIGRATION_JOB_ID
to fetch source objects with OPERATION_ID

Waiting for operation OPERATION_ID to complete...done.

SOURCE_OBJECT                            STATE    PHASE      ERROR
{'database': 'db1', 'type': 'DATABASE'}  RUNNING  FULL_DUMP
{'database': 'db2', 'type': 'DATABASE'}  STOPPED  CDC        {'code': 1, 'message': 'Internal error'}
如要查看作業是否成功,可以查詢傳回的作業物件, 或檢查遷移作業的狀態: