在 Google Cloud 控制台中,您可以對 狀態相同的遷移作業執行大量操作。您可以在 Google Cloud 控制台和使用 Google Cloud CLI 時,對單一遷移作業執行動作。
您可以對遷移作業執行下列動作:
| 動作 | 說明 |
|---|---|
| 編輯 | 您可以編輯非草稿遷移工作,進行下列變更:
|
| 開始 | 啟動處於「執行中」或「啟動中」狀態以外的遷移工作。請參閱「 遷移工作狀態」。 |
| 停止 | 停止執行中的遷移工作。資料移動作業已暫停。
遷移作業狀態會先變更為 Stopping,然後變更為 Stopped。您可以繼續、刪除或
升級已停止的遷移工作。 |
| 繼續 | 如果在增量載入期間停止遷移工作,之後可以繼續執行。繼續執行遷移工作時,資料庫遷移服務會擷取遷移工作停止時累積的所有交易記錄檔。 |
| 重新啟動 |
如果遷移工作發生錯誤,無法繼續複製資料,您可以重新啟動工作。 重新啟動遷移工作後的結果,取決於遷移工作失敗的原因,如下所示:
|
| 刪除 | 遷移工作可以刪除。結果取決於工作狀態:
|
| 升級 | 在遷移過程中,目的地 Cloud SQL 執行個體會降級為唯讀副本,並由資料庫遷移服務管理。在升級遷移作業之前,您無法對目的地資料庫執行任何讀取或寫入作業。詳情請參閱「 推送遷移工作」。 |
| 查看 | 您可以查看遷移工作中的特定資料庫詳細資料,或所有選取要遷移的資料庫。 |
啟動遷移工作
遷移工作建立完成後 (即未儲存為草稿狀態),您隨時可以啟動工作,開始遷移資料。
如要啟動遷移工作,請按照下列步驟操作:
控制台
- 前往 Google Cloud 控制台的「Migration jobs」(遷移工作) 頁面。
- 在「工作」分頁中,按一下要啟動的遷移工作顯示名稱。
遷移工作詳細資料頁面隨即開啟。
- 按一下「啟動」。
- 在對話方塊中,按一下「開始」。
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
如要確認作業是否成功,您可以查詢傳回的作業物件,或檢查遷移工作的狀態:
- 使用
gcloud database-migration migration-jobs describe指令搭配 MIGRATION_JOB_ID,查看遷移工作狀態。 - 使用
gcloud database-migration operations describe指令,並加上 OPERATION_ID,即可查看作業本身的狀態。
停止遷移工作
您隨時可以停止 執行中的遷移工作,步驟如下:
控制台
- 前往 Google Cloud 控制台的「遷移工作」頁面。
- 在「工作」分頁中,按一下要啟動的遷移工作顯示名稱。
遷移工作詳細資料頁面隨即開啟。
- 按一下「停止」。
- 在對話方塊中,點選「停止」。
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
- 使用
gcloud database-migration migration-jobs describe指令查看遷移工作狀態。 - 請搭配使用
gcloud database-migration operations describe和 OPERATION_ID,查看作業本身的狀態。
繼續執行遷移工作
如要繼續執行 停止的遷移工作,請按照下列步驟操作:
控制台
- 前往 Google Cloud 控制台的「遷移工作」頁面。
- 在「工作」分頁中,按一下要啟動的遷移工作顯示名稱。
遷移工作詳細資料頁面隨即開啟。
- 按一下「繼續」。
- 在對話方塊中,按一下「繼續」。
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
- 使用
gcloud database-migration migration-jobs describe指令查看遷移工作狀態。 - 請搭配使用
gcloud database-migration operations describe和 OPERATION_ID,查看作業本身的狀態。
重新啟動遷移工作
如要重新啟動遷移工作,請按照下列步驟操作:
控制台
- 前往 Google Cloud 控制台的「遷移工作」頁面。
- 在「Jobs」(工作) 分頁中,按一下要重新啟動的遷移工作顯示名稱。
遷移工作詳細資料頁面隨即開啟。
- 執行下列其中一項重新啟動動作:
如要重新啟動遷移作業中的所有資料庫,請在遷移工作的工具列上按一下「重新啟動」。
系統會顯示「重新啟動遷移工作」對話方塊。
如要只重新啟動特定資料庫,請勾選資料庫名稱旁的核取方塊,然後在「資料庫」分頁中點選「重新啟動」。
對話方塊會顯示要重新啟動的資料庫數量。
- 在對話方塊中,按一下「重新啟動」。
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
- 使用
gcloud database-migration migration-jobs describe指令查看遷移工作狀態。 - 使用
gcloud database-migration operations describe和 OPERATION_ID 查看作業本身的狀態。
更新遷移工作草稿
如要完成遷移作業的建立程序,請按照下列步驟操作:
控制台
- 前往 Google Cloud 控制台的「Migration jobs」(遷移工作) 頁面。
- 在「Drafts」(草稿) 分頁中,按一下要完成建立的遷移工作顯示名稱。
系統會開啟遷移工作建立精靈。
- 完成建立遷移工作。請參閱「 建立遷移工作」。
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。
- COMMA_SEPARATED_DATABASE_ID_LIST 替換為要遷移的 MySQL 資料庫 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 \ --databases-filter=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 ` --databases-filter=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 ^ --databases-filter=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]
在遷移工作中新增或移除資料庫
只要遷移工作並非處於 Running 狀態,您就能在 Google Cloud 控制台或使用 Google Cloud CLI,在遷移工作中新增或移除資料庫:
- 遷移工作必須處於
Not started、Stopped或Failed狀態。 如果遷移工作處於Running狀態,您必須先停止遷移工作,才能編輯資料庫選取項目。 - 重要事項:如果在已啟動的遷移工作中新增或移除資料庫,資料庫遷移服務會將遷移進度重設為完整轉儲階段。為遷移工作選取的所有資料庫 (包括已遷移的資料庫),都會在目的地 Cloud SQL 執行個體中遭到捨棄,並從來源執行個體重新傾印。
- 從遷移工作中移除資料庫後,資料庫遷移服務會停止複製該資料庫的變更,但不會刪除目的地執行個體中已遷移的資料庫資料。
如要在遷移工作中新增或移除資料庫,請按照下列步驟操作:
控制台
- 前往 Google Cloud 控制台的「遷移工作」頁面。
- 在「工作」分頁中,按一下遷移工作的顯示名稱。
遷移工作詳細資料頁面隨即開啟。
- 如果遷移作業狀態為「執行中」,請按一下「停止」, 在對話方塊中確認,然後等待狀態變更為「已停止」。
- 按一下 [編輯]。
- 在「選取要遷移的物件」部分,使用「要遷移的資料庫」選單,選擇「所有資料庫」或「特定資料庫」。如果選取「特定資料庫」,請使用核取方塊選取要新增的資料庫,或清除要移除的資料庫。
- 按一下「Save and restart」(儲存並重新啟動) (如果工作尚未啟動,則按一下「Save and start」(儲存並啟動)),即可套用變更並執行遷移工作,或按一下「Save」(儲存)。
gcloud
這個範例使用選用的 --no-async 旗標,因此所有作業都會同步執行。這表示某些指令可能需要一段時間才能完成。您可以略過 --no-async 旗標,以非同步方式執行指令。如果使用,請使用 gcloud database-migration operations describe 指令確認作業是否成功。
使用下列任何指令資料前,請先替換以下項目:
- 將 MIGRATION_JOB_ID 替換為遷移工作 ID。
如果不知道 ID,可以使用
gcloud database-migration migration-jobs list指令列出特定區域中的所有遷移作業,並查看其 ID。 - REGION,這是儲存遷移工作的區域 ID。
- DATABASE_LIST,並以逗號分隔的清單列出要透過遷移工作遷移的所有資料庫名稱 (例如
my-db-1,my-db-2)。如要將遷移工作切換回遷移來源執行個體上的所有資料庫,請將--databases-filter=DATABASE_LIST替換為--all-databases。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud database-migration migration-jobs \ update MIGRATION_JOB_ID \ --region=REGION \ --databases-filter=DATABASE_LIST
Windows (PowerShell)
gcloud database-migration migration-jobs ` update MIGRATION_JOB_ID ` --region=REGION ` --databases-filter=DATABASE_LIST
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ update MIGRATION_JOB_ID ^ --region=REGION ^ --databases-filter=DATABASE_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
如要確認作業是否成功,您可以查詢傳回的作業物件,或檢查遷移工作的狀態:
- 使用
gcloud database-migration migration-jobs describe指令搭配 MIGRATION_JOB_ID,查看遷移工作狀態。 - 使用
gcloud database-migration operations describe指令,並加上 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
- 使用
gcloud database-migration migration-jobs describe指令查看遷移工作狀態。 - 請搭配使用
gcloud database-migration operations describe和 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。
執行下列指令:
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'}
- 使用
gcloud database-migration migration-jobs describe指令查看遷移工作狀態。 - 使用
gcloud database-migration operations describe和 OPERATION_ID 查看作業本身的狀態。