總覽
資料庫移轉服務會使用遷移工作,將資料從來源資料庫執行個體遷移至目的地資料庫執行個體。
為現有目的地執行個體建立遷移工作時,請注意以下事項:
- 定義遷移工作的設定
- 選取來源資料庫連線設定檔
- 選取現有的目的地資料庫執行個體
- 將現有執行個體降級,轉換為唯讀備用資源
- 設定來源與目的地資料庫執行個體之間的連線
- 測試遷移工作,確保您為工作提供的連線資訊有效
如要遷移至在資料庫遷移服務外建立的目的地執行個體,請注意某些限制。舉例來說,Cloud SQL 目的地執行個體必須為空白,或只包含系統設定資料。詳情請參閱「已知限制」。
資料庫遷移服務精靈可協助您建立遷移工作。這個精靈包含以下窗格:開始、定義來源、建立目的地、定義連線方法、設定遷移資料庫,以及測試並建立遷移工作。如要瞭解如何為每個窗格填入資料,請參閱本頁的後續章節。
使用 Google Cloud 控制台建立遷移工作
定義遷移工作的設定
按一下頁面頂端的「Create migration job」。
提供遷移工作的名稱。選擇方便辨識遷移工作的名稱。請勿在工作名稱中加入敏感資訊或個人識別資訊。
保留系統自動產生的遷移工作 ID。
選取來源資料庫引擎。
選取目的地資料庫引擎。
選取遷移作業的目的地區域。這個區域必須與目的地資料庫所在的區域相同。選擇目的地區域後,就無法變更這項選項。
指定遷移工作類型:一次性 (僅限快照) 或持續 (快照 + 持續變更)。
在「繼續前,請先詳閱必要條件」部分,按一下「開啟」即可查看系統自動產生的操作說明,瞭解如何準備來源資料庫以便遷移。建議您在這個步驟中完成這些必要條件,但您也可以在測試或開始遷移工作之前,隨時完成這些必要條件。詳情請參閱「設定來源」。
按一下 [儲存並繼續]。
指定來源連線設定檔的相關資訊
-
如果您已建立連線設定檔,請從現有連線設定檔清單中選取該設定檔。
如果您尚未建立連線設定檔,請點選下拉式選單底部的「建立連線設定檔」,然後按照「建立來源連線設定檔」中的步驟操作。
- 在「自訂資料轉儲設定」部分中,按一下「顯示資料轉儲設定」。
資料傾印平行處理的速度取決於來源資料庫的負載量。您可以使用下列設定:
- 最佳 (建議):在來源資料庫上取得平衡的效能與最佳負載。
- 最大:提供最高傾印速度,但可能會導致來源資料庫的負載增加。
- Minimum:使用來源資料庫上最少的運算資源,但可能會降低傾印處理量。
如果您想使用調整過的資料轉儲平行處理設定,請務必在來源資料庫中增加
max_replication_slots
、max_wal_senders
和max_worker_processes
參數。您可以在建立遷移工作結束時, 執行遷移工作測試來驗證設定。 - 按一下 [儲存並繼續]。
選取目的地執行個體
- 在「目標執行個體類型」選單中,選取「現有執行個體」。
- 在「選取目的地執行個體」部分中,選取目的地執行個體。
- 查看「Instance details」部分中的資訊,然後按一下「Select and continue」。
- 如要遷移至現有的目的地資料庫,資料庫移轉服務會將目標執行個體降級,並轉換為備用資源。如要表示可以安全執行降級作業,請在確認視窗中輸入目的地執行個體 ID。
- 按一下「確認並繼續」。
設定來源與目的地資料庫執行個體之間的連線
在「Connectivity method」選單中,選取網路連線方式。這個方法會定義新建立的 Cloud SQL 執行個體連線至來源資料庫的方式。目前的網路連線方法包括IP 許可清單、反向 SSH 通道和 VPC 對等互連。
- 如果您選取 IP 許可清單網路連線方法,請務必指定目的地執行個體的傳出 IP 位址。如果您建立的 Cloud SQL 執行個體是高可用性執行個體,請將主要和次要執行個體的傳出 IP 位址都納入。
如果您選取反向 SSH 通道網路連線方法,請選取要用來託管通道的 Compute Engine VM 執行個體。
指定執行個體後,Google 會提供指令碼,執行在來源和目的地資料庫之間設定通道的步驟。您必須在 Google Cloud CLI 中執行指令碼。
在可連結來源資料庫和 Google Cloud 的機器上執行指令。
- 如果您選取虛擬私有雲對等互連網路連線方式,請選取來源資料庫所在的虛擬私有雲網路。系統會更新 Cloud SQL 執行個體,以連線至這個網路。
- 進一步瞭解如何設定連線功能。
選取網路連線方式並提供相關資訊後,請按一下「設定並繼續」。
設定遷移資料庫
您可以選取要遷移的資料庫。
- 在「要遷移的資料庫」清單中,選取下列其中一個選項:
- 所有資料庫:選取來源中所有資料庫。
- 特定資料庫:讓您從來源的所有資料庫中選取特定資料庫。
如果您想遷移特定資料庫,可以篩選顯示的清單,並選取要透過資料庫移轉服務遷移至目的地的資料庫。
如果清單未顯示,且系統顯示資料庫探索錯誤,請按一下「Reload」。如果資料庫探索作業失敗,工作會遷移所有資料庫。您可以繼續建立遷移工作,並稍後修正連線錯誤。
- 按一下 [儲存並繼續]。
測試及建立遷移工作
在這個最後步驟中,請查看遷移工作設定、來源、目的地和連線方法的摘要,然後測試遷移工作設定的有效性。如果遇到任何問題,您可以修改遷移作業的設定。並非所有設定都能編輯。
按一下「測試工作」,確認以下事項:
- 來源資料庫已根據先決條件正確設定。
- 來源和目的地執行個體可以互相通訊。
- 完成對目的地所需的私人或公開 IP 位址更新。
- 遷移工作有效,且來源和目的地版本相容。
如果測試失敗,您可以在流程的適當部分解決問題,然後返回重新測試。
即使測試失敗,也能建立遷移工作,但在工作啟動後,可能會在執行期間的某個時間點失敗。
按一下「建立並啟動工作」,即可建立遷移工作並立即啟動,或按一下「建立工作」,建立遷移工作,但不立即啟動。
注意:如果您使用 Terraform 佈建目的地資料庫,在執行遷移作業時,可能會發生設定偏移的情況。在遷移作業完成前,請勿嘗試重新套用 Terraform 設定。詳情請參閱「 Terraform 設定偏移」。
如果工作未在建立時啟動,您可以按一下「開始」,從「遷移工作」頁面啟動工作。
無論遷移工作何時開始,貴機構都會因目的地執行個體的存在而產生費用。
啟動遷移工作後,資料庫移轉服務會開始完整傾印作業,並暫時鎖定來源資料庫。如果來源位於 Amazon RDS 或 Amazon Aurora,資料庫遷移服務還需要在遷移作業開始時短暫停止寫入工作 (約一分鐘內)。詳情請參閱「 資料傾印並行處理的注意事項」。
遷移工作會新增至遷移工作清單,您可以直接查看。
請繼續查看遷移工作。
使用 Google Cloud CLI 建立遷移工作
使用 Google Cloud CLI 遷移至現有執行個體時,您必須手動為目的地執行個體建立連線設定檔。使用 Google Cloud 主控台時,您不必執行這項操作,因為資料庫移轉服務會為您建立及移除目的地連線設定檔。
事前準備
使用 gcloud CLI 為現有目的地資料庫執行個體建立遷移工作之前,請確認您已完成以下事項:
建立目的地連線設定檔
執行 gcloud database-migration connection-profiles create
指令,為現有目的地執行個體建立目的地連線設定檔:
這個範例會使用選用的 --no-async
標記,讓所有作業都能同步執行。也就是說,部分指令可能需要一段時間才能完成。您可以略過 --no-async
標記,以非同步方式執行指令。如果是,您必須使用 gcloud database-migration operations describe
指令,確認作業是否成功。
使用下列任何指令資料之前,請先替換以下項目:
- CONNECTION_PROFILE_ID 與連線設定檔的機器可讀 ID。
- REGION 與您要儲存連線設定檔的區域 ID。
- DESTINATION_INSTANCE_ID 與目的地執行個體的執行個體 ID 搭配使用。
- (選用) CONNECTION_PROFILE_NAME 為連線設定檔提供人類可讀的名稱。這個值會顯示在 Google Cloud 控制台中。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud database-migration connection-profiles \ create postgresql CONNECTION_PROFILE_ID \ --no-async \ --cloudsql-instance=DESTINATION_INSTANCE_ID \ --region=REGION \ --display-name=CONNECTION_PROFILE_NAME
Windows (PowerShell)
gcloud database-migration connection-profiles ` create postgresql CONNECTION_PROFILE_ID ` --no-async ` --cloudsql-instance=DESTINATION_INSTANCE_ID ` --region=REGION ` --display-name=CONNECTION_PROFILE_NAME
Windows (cmd.exe)
gcloud database-migration connection-profiles ^ create postgresql CONNECTION_PROFILE_ID ^ --no-async ^ --cloudsql-instance=DESTINATION_INSTANCE_ID ^ --region=REGION ^ --display-name=CONNECTION_PROFILE_NAME
您應該會收到類似以下的回應:
Waiting for connection profile [CONNECTION_PROFILE_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
建立遷移工作
這個範例會使用選用的 --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。
選用:資料庫移轉服務預設會遷移來源中的所有資料庫。如果您只想遷移特定資料庫,請使用
--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 \ create MIGRATION_JOB_ID \ --no-async \ --region=REGION \ --display-name=MIGRATION_JOB_NAME \ --source=SOURCE_CONNECTION_PROFILE_ID \ --destination=DESTINATION_CONNECTION_PROFILE_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 ` --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 ^ --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]
降級目的地資料庫
資料庫遷移服務要求目的地資料庫執行個體在遷移期間必須做為讀取用複本運作。在啟動遷移工作之前,請執行 gcloud database-migration migration-jobs demote-destination
指令,將目的地資料庫執行個體降級。
使用下列任何指令資料之前,請先替換以下項目:
- MIGRATION_JOB_ID 與您的遷移工作 ID 搭配使用。
如果您不知道 ID,可以使用
gcloud database-migration migration-jobs list
指令列出特定地區的所有遷移工作,並查看其 ID。 - REGION,其中包含連線設定檔儲存區域的 ID。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud database-migration migration-jobs \ demote-destination MIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` demote-destination MIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ demote-destination 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: demote-destination name: OPERATION_ID
如要查看作業是否成功,您可以查詢傳回的作業物件,或檢查遷移工作的狀態:
- 使用
gcloud database-migration migration-jobs describe
指令查看遷移工作的狀態。 - 請使用
gcloud database-migration operations describe
搭配 OPERATION_ID,查看作業本身的狀態。
管理遷移工作
此時,系統已設定遷移工作並連結至目的地資料庫執行個體。您可以使用下列作業來管理它:
選用:驗證遷移工作。
建議您先執行gcloud database-migration migration-jobs verify
指令,確認遷移作業。如需更多資訊,請展開下列部分:
gcloud database-migration migration-jobs verify
使用下列任何指令資料之前,請先替換以下項目:
- 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,查看作業本身的狀態。
- MIGRATION_JOB_ID 與您的遷移工作 ID 搭配使用。
選用:擷取要遷移的資料庫相關資訊。
遷移特定資料庫時,資料庫移轉服務需要使用--database-filter
標記,擷取您為遷移工作選取的資料庫詳細資料。開始遷移工作前,請先執行
gcloud database-migration migration-jobs fetch-source-objects
指令。如需更多資訊,請展開下列部分:
gcloud database-migration migration-jobs fetch-source-objects
使用下列任何指令資料之前,請先替換以下項目:
- MIGRATION_JOB_ID 與您的遷移工作 ID 搭配使用。
如果您不知道 ID,可以使用
gcloud database-migration migration-jobs list
指令列出特定地區的所有遷移工作,並查看其 ID。 - REGION,其中包含連線設定檔儲存區域的 ID。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud database-migration migration-jobs \ fetch-source-objects MIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` fetch-source-objects MIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ fetch-source-objects 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': 'DATABASE_NAME', 'type': 'DATABASE'} NOT_SELECTED PHASE_UNSPECIFIED {'database': 'DATABASE_NAME', 'type': 'DATABASE'} STOPPED CDC {'code': 1, 'message': 'Internal error'}
如要查看作業是否成功,您可以查詢傳回的作業物件,或檢查遷移工作的狀態:
- 請使用
gcloud database-migration migration-jobs describe
指令搭配 MIGRATION_JOB_ID,查看遷移工作的狀態。 - 請使用
gcloud database-migration operations describe
指令搭配 OPERATION_ID,查看作業本身的狀態。
- MIGRATION_JOB_ID 與您的遷移工作 ID 搭配使用。
開始遷移工作。
執行gcloud database-migration migration-jobs start
指令,開始遷移工作。如需更多資訊,請展開下列部分:
gcloud database-migration migration-jobs start
使用下列任何指令資料之前,請先替換以下項目:
- 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,查看作業本身的狀態。
- MIGRATION_JOB_ID 與您的遷移工作 ID 搭配使用。
推送遷移工作
遷移作業進入變更資料擷取 (CDC) 階段後,您可以將目的地資料庫執行個體從讀取副本升級為獨立執行個體。執行 gcloud database-migration migration-jobs promote
指令:
使用下列任何指令資料之前,請先替換以下項目:
- MIGRATION_JOB_ID 與您的遷移工作 ID 搭配使用。
如果您不知道 ID,可以使用
gcloud database-migration migration-jobs list
指令列出特定地區的所有遷移工作,並查看其 ID。 - REGION,其中包含連線設定檔儲存區域的 ID。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud database-migration migration-jobs \ promote MIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` promote MIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ promote 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,查看作業本身的狀態。