資料庫移轉服務會使用遷移工作,將資料從來源資料庫執行個體遷移至目的地資料庫執行個體。為現有目的地執行個體建立遷移工作時,需要:
- 定義遷移工作的設定
- 選取來源資料庫連線設定檔
- 選取現有的目的地資料庫執行個體
- 將現有執行個體降級,轉換為唯讀備用資源
- 設定來源與目的地資料庫執行個體之間的連線
- 測試遷移工作,確保您為工作提供的連線資訊有效
如要遷移至在資料庫遷移服務外建立的目的地執行個體,請注意某些限制。舉例來說,Cloud SQL 目的地執行個體必須為空白,或只包含系統設定資料。詳情請參閱「已知限制」。
定義遷移工作的設定
- 前往 Google Cloud 控制台的「Migration jobs」頁面。
- 按一下「建立遷移工作」。
遷移工作設定精靈頁面會隨即開啟。 這個精靈包含多個面板,可引導您完成每個設定步驟。
您可以隨時按一下「儲存並結束」,暫停建立遷移工作。您在該時間點前輸入的所有資料都會儲存在遷移工作草稿中。您可以稍後完成草稿遷移作業。
- 在「開始使用」頁面中輸入下列資訊:
- 遷移工作名稱
這是遷移工作的可讀名稱。這個值會顯示在 Google Cloud 控制台中。
- 遷移工作 ID
這是遷移工作的機器可讀 ID。您可以使用 Database Migration Service Google Cloud CLI 指令或 API,透過這個值處理遷移作業。
- 在「來源資料庫引擎」清單中,選取「MySQL」。
「Destination database engine」欄位會自動填入,且無法變更。
- 選取要儲存遷移工作的區域。
資料庫移轉服務是全區域產品,也就是說,與遷移作業相關的所有實體 (來源和目的地連線設定檔、遷移工作、目的地資料庫) 都必須儲存在單一區域。請根據需要存取資料的服務 (例如 Compute Engine 執行個體或 App Engine 應用程式) 和其他服務的位置,選取區域。選擇目的地區域後,就無法變更這項選項。
- 遷移工作名稱
- 按一下 [儲存並繼續]。
指定來源連線設定檔的相關資訊
在「Define a source」頁面上,執行下列步驟:
- 在「Source connection profile」下拉式選單中,選取來源資料庫的連線設定檔。
- 在「自訂完整傾印設定」部分中,按一下「編輯設定」。
- 在「Edit full dump configuration」面板中,從「Full dump method」下拉式選單中選取下列任一選項:
- 以實體為準:如果您想使用 Percona XtraBackup 公用程式提供自己的備份檔案,請選取這個選項。這種做法需要額外的準備步驟。如需 Percona XtraBackup 產生實體備份檔案的完整指南,請參閱「 使用 Percona XtraBackup 實體檔案遷移資料庫」。
- 邏輯型:如要使用
mysqldump
公用程式建立的邏輯備份檔案,請選取這個選項。資料庫遷移服務可以自動產生這個備份檔案,您也可以自行提供副本。
- 編輯其餘的傾印設定。執行下列任一操作:
- 如果您使用實體備份檔案,請在「提供資料夾」中按一下「瀏覽」,然後選取您上傳完整傾印檔案的資料夾。請務必選取包含完整備份檔案的專屬資料夾,而非儲存空間儲存桶本身。
如果您使用邏輯備份檔案,請設定資料轉儲平行處理或轉儲標記。
展開這個部分,瞭解完整邏輯備份檔案的步驟
在「選擇如何產生轉儲檔案」部分,使用下列任一選項:
自動產生 (建議)
建議您使用這個選項,因為資料庫移轉服務在建立並啟動遷移工作後,一律會產生初始資料庫轉儲檔案。
資料庫移轉服務會使用這個檔案,重現來源資料庫的原始物件定義和資料表資料,以便將這項資訊遷移至目的地 Cloud SQL 資料庫執行個體。
如果您使用自動產生的資料轉儲,請在「設定資料轉儲作業」部分中,選取資料庫移轉服務應執行的作業類型:
- 資料轉儲平行處理:使用高效能平行處理選項,可在遷移至 MySQL 5.7 或 8 版本時使用。如要進一步瞭解來源資料庫的必要權限,請參閱「
設定來源資料庫」一文。
資料並行處理的速度與來源資料庫的負載量有關:
- 最佳 (建議):在來源資料庫上取得平衡的效能與最佳負載。
- 最大:提供最高傾印速度,但可能會導致來源資料庫的負載增加。
- Minimum:使用來源資料庫上最少的運算資源,但可能會降低傾印處理量。
- 傾印標記:此選項與「資料傾印並行處理」選項互斥。
您可以使用這個設定,直接為用來建立傾印檔案的
mysqldump
公用程式設定旗標。如要新增標記,請按照下列步驟操作:
- 按一下「新增旗標」。
請選取下列其中一個標記:
add-locks:
這個旗標會在每個包含在轉儲檔案中的資料表周圍加上LOCK TABLES
和UNLOCK TABLES
陳述式。這樣一來,當傾印檔案載入至目的地執行個體時,插入作業的速度就會加快。ignore-error:
使用這個標記可輸入以半形逗號分隔的錯誤號碼清單。這些數字代表mysqldump
公用程式會忽略的錯誤。max-allowed-packet:
使用這個標記,設定緩衝區的最大大小,以便 MySQL 用戶端與來源 MySQL 資料庫之間的通訊。緩衝區的預設大小為 24 MB,大小上限為 1 GB。
- 按一下「完成」。
- 針對每個要新增的標記重複執行上述步驟。
如要移除標記,請按一下包含標記的列右側的垃圾桶圖示。
- 資料轉儲平行處理:使用高效能平行處理選項,可在遷移至 MySQL 5.7 或 8 版本時使用。如要進一步瞭解來源資料庫的必要權限,請參閱「
設定來源資料庫」一文。
自行提供
不建議使用這個選項,因為資料庫移轉服務會在執行遷移工作時,預設執行初始轉儲作業。
如要使用自己的傾印檔案,請選取「提供自己的檔案」,然後按一下「瀏覽」,選取檔案 (如果使用多個檔案,請選取整個 Cloud Storage 資料夾),然後按一下「選取」。
請確認轉儲檔案是在過去 24 小時內產生,且符合 轉儲檔案要求。
- 按一下 [儲存並繼續]。
選取目的地 Cloud SQL 執行個體
- 在「目的地執行個體類型」選單中,選取「現有執行個體」。
- 在「選取目的地執行個體」部分中,選取目的地執行個體。
- 查看「執行個體詳細資料」部分中的資訊,然後按一下「選取並繼續」。
- 如要遷移至現有的目的地資料庫,資料庫移轉服務會將目標執行個體降級,並轉換為備用資源。如要表示可以安全執行降級作業,請在確認視窗中輸入目的地執行個體 ID。
- 按一下「確認並繼續」。
設定來源與目的地資料庫執行個體之間的連線
從「Connectivity method」下拉式選單中,選取網路連線方式。這個方法會定義新建立的 Cloud SQL 執行個體連線至來源資料庫的方式。目前的網路連線方法包括IP 許可清單、反向 SSH 通道和 VPC 對等互連。
如要使用 | 具體做法 |
---|---|
IP 許可清單網路連線方式 | 您需要指定目的地執行個體的傳出 IP 位址。如果您建立的 Cloud SQL 執行個體是高可用性執行個體,請將主要和次要執行個體的傳出 IP 位址都納入。 |
反向安全殼層通道網路連線方法, | 您必須選取要代管通道的 Compute Engine VM 執行個體。 指定執行個體後,Google 會提供指令碼,執行在來源和目的地資料庫之間設定通道的步驟。您必須在 Google Cloud CLI 中執行指令碼。 在可連結來源資料庫和 Google Cloud的機器上執行指令。 |
虛擬私有雲網路對等互連連線方式 | 您需要選取來源資料庫所在的虛擬私有雲網路。系統會更新 Cloud SQL 執行個體,以連線至這個網路。 |
選取並設定網路連線後,請按一下「設定並繼續」。
測試、建立及執行遷移工作
在這個最後步驟中,請查看遷移工作設定、來源、目的地和連線方法的摘要,然後測試遷移工作設定的有效性。如果遇到任何問題,您可以修改遷移作業的設定。並非所有設定都能編輯。
-
在「Test and create migration job」頁面中,按一下「Test job」。
如果測試失敗,您可以在流程的適當部分解決問題,然後返回重新測試。如要瞭解如何排解遷移工作測試失敗的問題,請參閱「 診斷 MySQL 問題」。
-
遷移工作測試完成後,請按一下「建立並啟動工作」建立遷移工作並立即啟動,或按一下「建立工作」建立遷移工作,但不要立即啟動。
如果工作在建立時未啟動,您可以按一下「開始」,從「遷移工作」頁面啟動工作。無論遷移工作何時開始,貴機構都會因目的地執行個體的存在而產生費用。
遷移作業正在進行中。啟動遷移工作後,資料庫移轉服務會開始完整轉儲作業,並暫時鎖定來源資料庫。如果來源位於 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 mysql 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 mysql 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 mysql 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
建立的遷移作業。- MIGRATION_JOB_TYPE 與遷移工作類型。允許兩個值:
ONE_TIME
或CONTINUOUS
。詳情請參閱「 遷移類型」。
執行下列指令:
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=MIGRATION_JOB_TYPE \
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=MIGRATION_JOB_TYPE `
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=MIGRATION_JOB_TYPE ^
您應該會收到類似以下的回應:
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,查看作業本身的狀態。
管理遷移工作
此時,系統已設定遷移工作並連結至目的地資料庫執行個體。您可以使用 verify
、start
、stop
、restart
和 resume
作業來管理它。
驗證遷移工作
建議您先執行 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,查看作業本身的狀態。
啟動遷移工作
執行 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,查看作業本身的狀態。
推送遷移工作
遷移作業進入變更資料擷取 (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,查看作業本身的狀態。