總覽
資料庫移轉服務會使用遷移工作,將資料從來源資料庫執行個體遷移至目的地資料庫執行個體。
為現有目的地執行個體建立遷移工作時,請完成下列步驟:
- 定義遷移工作設定
- 選取來源資料庫連線設定檔
- 選取現有的目的地資料庫執行個體
- 將現有執行個體降級,轉換為唯讀備用資源
- 設定來源與目的地資料庫執行個體之間的連線
- 測試遷移工作,確保您為工作提供的連線資訊有效
如要遷移至在資料庫遷移服務外部建立的目的地執行個體,請注意以下限制。詳情請參閱「已知限制」一節。
資料庫遷移服務精靈可協助您建立遷移工作。這個精靈包含下列窗格:「開始使用」、「定義來源」、「建立目的地」、「定義連線方法」、「設定遷移資料庫」,以及「測試及建立遷移工作」。如要瞭解如何填入每個窗格,請參閱本頁的下列各節。
使用 Google Cloud 控制台建立遷移作業
定義遷移工作設定
按一下頁面頂端的「建立遷移工作」。
提供遷移工作名稱。選擇容易辨識的名稱,方便您識別移轉作業。請勿在職稱中加入敏感或個人識別資訊。
保留系統自動產生的「遷移工作 ID」。
選取來源資料庫引擎。
選取「AlloyDB for PostgreSQL」做為目的地引擎。
選取遷移作業的目的地區域。這個地區必須與目的地資料庫所在的地區相同。選擇目的地國家/地區後,就無法變更這項設定。
選擇「連續」(快照 + 持續變更) 做為遷移工作類型。
在「繼續之前,請先查看必要條件」部分中,按一下「開啟」,查看自動產生的操作說明,瞭解如何準備要遷移的來源資料庫。建議您在這個步驟完成這些必要條件,但您也可以在測試或開始執行遷移工作前完成。詳情請參閱「設定來源」。
按一下 [儲存並繼續]。
指定來源連線設定檔的相關資訊
-
如果您已建立連線設定檔,請從現有連線設定檔清單中選取。
如果尚未建立連線設定檔,請點選下拉式選單底部的「建立連線設定檔」,然後按照「建立來源連線設定檔」一文中的步驟操作。
建議您為 AlloyDB 遷移作業建立專屬的連線設定檔。
- 在「自訂資料轉儲設定」部分,按一下「顯示資料轉儲設定」。
資料傾印作業的平行處理速度與來源資料庫的負載量有關。你可以使用下列設定:
- 最佳 (建議):在效能與來源資料庫負載之間取得平衡。
- 最高:提供最快的傾印速度,但可能會增加來源資料庫的負載。
- 最低:在來源資料庫上佔用的運算資源最少,但傾印處理量可能較慢。
如要使用調整後的資料轉儲平行處理設定,請務必增加來源資料庫的
max_replication_slots
、max_wal_senders
和max_worker_processes
參數。您可以在建立遷移工作後 執行遷移工作測試,驗證設定。 - 按一下 [儲存並繼續]。
選取目的地執行個體
- 在「Type of destination cluster」(目的地叢集類型) 選單中,選取「Existing cluster」(現有叢集)。
- 在「選取目的地叢集」部分,選取目的地叢集。
- 查看叢集相關資訊,然後按一下「選取並繼續」。
- 如要遷移至現有的目的地資料庫,資料庫移轉服務會降低目標執行個體的級別,並將其轉換為副本。如要表明可以安全執行降級作業,請在確認視窗中輸入目標執行個體 ID。
- 按一下「確認並繼續」。
設定來源與目的地資料庫執行個體之間的連線
- 從「連線方式」下拉式選單中,選取網路連線方式。這個方法可定義新建立的 AlloyDB 叢集連線至來源資料庫的方式。目前的網路連線方法包括 IP 許可清單、虛擬私有雲對等互連、Private Service Connect 介面、反向 SSH 通道,以及透過雲端託管 VM 的 TCP Proxy。
- 如果選取 IP 許可清單網路連線方法,您必須指定目的地執行個體的輸出 IP 位址。複製主要和次要執行個體的傳出 IP 位址,然後用這些 IP 位址設定來源資料庫伺服器和
pg_hba.conf
檔案中的網路防火牆,以便來源接受來自這些位址的連線。 如果選取反向 SSH 通道網路連線方法,請選取要託管通道的 Compute Engine VM 執行個體。
指定執行個體後,Google 會提供指令碼,執行在來源和目的地資料庫之間設定通道的步驟。您需要在 Google Cloud CLI 中執行指令碼。
在可連線至來源資料庫和 Google Cloud 的機器上執行指令。
- 如果您使用私人 IP 連線方法,請選取「虛擬私有雲對等互連」或「PSC 介面」。
如果選取「透過託管於雲端的 VM 連線方法使用 TCP Proxy」,請輸入必要詳細資料,以建立新的 Compute Engine VM 執行個體來託管 TCP Proxy。
指定詳細資料後, Google Cloud 控制台會提供指令碼,執行在來源和目的地資料庫之間設定 Proxy 的步驟。您需要在安裝最新版 Google Cloud CLI 的機器上執行指令碼。
執行指令碼後,系統會輸出新建立的 VM 私人 IP。輸入 IP,然後按一下「設定並繼續」。
- 選取網路連線方式並提供該方式的任何額外資訊後,請按一下「設定並繼續」。
設定遷移資料庫
您可以選取要遷移的資料庫。
- 在「要遷移的資料庫」清單中,選取下列其中一個選項:
- 所有資料庫:選取來源中的所有資料庫。
- 特定資料庫:可從來源上的所有資料庫中選取特定資料庫。
如要遷移特定資料庫,可以篩選顯示的清單,然後選取要透過資料庫移轉服務遷移至目的地的資料庫。
如果未顯示清單,且系統顯示資料庫探索錯誤,請按一下「重新載入」。如果資料庫探索失敗,這項工作會遷移所有資料庫。您可以繼續建立遷移工作,稍後再修正連線錯誤。
- 按一下 [儲存並繼續]。
測試及建立遷移工作
在最後這個步驟中,請檢查遷移工作設定、來源、目的地和連線方式的摘要,然後測試遷移工作設定的有效性。如果遇到任何問題,可以修改遷移作業的設定。部分設定無法編輯。
按一下「測試工作」,確認:
- 根據必要條件,來源資料庫已正確設定。
- 來源和目的地執行個體可以互相通訊。
- 目的地需要更新私人 IP 位址。
- 遷移工作有效,且來源和目的地版本相容。
如果測試失敗,請在流程的適當部分解決問題,然後返回重新測試。
即使測試失敗,您還是可以建立遷移工作,但工作啟動後,可能會在執行期間的某個時間點失敗。
按一下「建立並啟動工作」,即可建立並立即啟動遷移工作;按一下「建立工作」,即可建立遷移工作,但不會立即啟動。
如果工作在建立時未啟動,可以前往「遷移工作」頁面,點選「開始」啟動工作。
無論遷移工作何時開始,貴機構都必須支付目的地執行個體的費用。
啟動遷移工作後,資料庫移轉服務會開始完整傾印,並短暫鎖定來源資料庫。如果來源位於 Amazon RDS 或 Amazon Aurora,Database Migration Service 還需要在遷移作業開始時,短暫停止寫入作業 (約一分鐘內)。詳情請參閱「 資料傾印平行處理注意事項」。
遷移工作會新增至遷移工作清單,您可以直接查看。
請繼續查看遷移工作。
使用 Google Cloud CLI 建立遷移作業
使用 Google Cloud CLI 遷移至現有執行個體時,您必須手動建立目的地執行個體的連線設定檔。使用 Google Cloud 控制台時,不需要執行這項操作,因為 Database Migration Service 會為您建立及移除目的地連線設定檔。
事前準備
使用 gcloud CLI 建立遷移工作,將資料遷移至現有目的地資料庫執行個體之前,請先確認下列事項:
建立目的地連線設定檔
執行 gcloud database-migration connection-profiles create
指令,為現有目的地執行個體建立目的地連線設定檔:
這個範例使用選用的 --no-async
標記,因此所有作業都會同步執行。也就是說,部分指令可能需要一段時間才能完成。您可以略過 --no-async
標記,以非同步方式執行指令。如果有的話,您需要使用 gcloud database-migration operations describe
指令,確認作業是否成功。
使用下方的任何指令資料之前,請先替換以下項目:
- CONNECTION_PROFILE_ID,其中包含連線設定檔的機器可讀取 ID。
- REGION,其中 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 \ --alloydb-cluster=DESTINATION_INSTANCE_ID \ --region=REGION \ --display-name=CONNECTION_PROFILE_NAME
Windows (PowerShell)
gcloud database-migration connection-profiles ` create postgresql CONNECTION_PROFILE_ID ` --no-async ` --alloydb-cluster=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 ^ --alloydb-cluster=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。您可以使用這個值,透過 Database Migration Service 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,即可查看作業本身的狀態。