總覽
本頁說明如何使用資料庫移轉服務 API 管理 AlloyDB 目的地資料庫的遷移工作。
您可以透過兩種方式使用資料庫移轉服務 API。您可以發出 REST API 呼叫,也可以使用 Google Cloud CLI (CLI)。
如要查看使用 gcloud
管理資料庫移轉服務遷移作業的概略資訊,請按這裡。
建立遷移工作的草稿
以下是要求在草稿模式中建立遷移工作的範例。這樣一來,您就不必一次建立遷移工作。您可以建立部分內容,然後使用 PATCH
作業進行更新。
舉例來說,如果您想要建立遷移作業,但沒有目的地資料庫或網路連線方法,可以使用以下程式碼:
REST
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- region:專案區域
- migration-job-id:遷移工作 ID
- migration-job-name:遷移工作名稱
- source-connection-profile-id:來源連線設定檔 ID
- destination-connection-profile-id:目的地連線設定檔 ID
HTTP 方法和網址:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs?migrationJobId=migration-job-id
JSON 要求主體:
{ "displayName": "migration-job-name", "state": "DRAFT", "type": "CONTINUOUS", "source": "projects/project-id/locations/region/connectionProfiles/source-connection-profile-id", //"destination":"projects/project-id/locations/region/connectionProfiles/destination-connection-profile-id", "sourceDatabase": { "engine": "POSTGRESQL" }, //"vpcPeeringConnectivity": { //"vpc": "default" //} }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "projects/project-id/locations/region/operations/operation-1591975557292-5a7e4b195623c-e350e3da-713dee7d", "metadata": { "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata", "createTime": "2020-06-12T15:25:57.430715421Z", "target": "projects/project-id/locations/region/migrationJobs/migration-job-id", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
建立使用虛擬私有雲對等互連連線的連續遷移工作
以下是建立持續遷移工作的要求,用於使用 VPC 對等互連連線,將 PostgreSQL 到 AlloyDB 資料庫 (在 Google Compute Engine VM 上執行) 遷移至 PostgreSQL 適用的 Cloud SQL 到 AlloyDB。
REST
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- region:專案區域
- migration-job-id:遷移工作 ID
- migration-job-name:遷移工作名稱
- source-connection-profile-id:來源連線設定檔 ID
- destination-connection-profile-id:目的地連線設定檔 ID
HTTP 方法和網址:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs?migrationJobId=migration-job-id
JSON 要求主體:
{ "displayName": "migration-job-name", "state": "NOT_STARTED", "type": "CONTINUOUS", "source": "projects/project-id/locations/region/connectionProfiles/source-connection-profile-id", "destination":"projects/project-id/locations/region/connectionProfiles/destination-connection-profile-id", "sourceDatabase": { "engine": "POSTGRESQL" }, "vpcPeeringConnectivity": { "vpc": "default" } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "projects/project-id/locations/region/operations/operation-1591975557292-5a7e4b195623c-e350e3da-713dee7d", "metadata": { "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata", "createTime": "2020-06-12T15:25:57.430715421Z", "target": "projects/project-id/locations/region/migrationJobs/migration-job-id", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
如要進一步瞭解如何使用 gcloud
建立資料庫移轉服務遷移作業,請按這裡。
建立使用反向 SSH 連線的連續遷移工作
以下是建立持續執行的遷移工作要求,使用反向 SSH 連線,將 Amazon RDS PostgreSQL 資料庫遷移至 PostgreSQL 適用的 Cloud SQL 和 AlloyDB。
REST
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- region:專案區域
- migration-job-id:遷移工作 ID
- migration-job-name:遷移工作名稱
- source-connection-profile-id:來源連線設定檔 ID
- destination-connection-profile-id:目的地連線設定檔 ID
- vm-name:SSH VM 的名稱。例如 dms-ssh-bastion。
- vm-ip-address:SSH VM 的 IP 位址。例如 11.22.33.44。
- vm-port:SSH VM 的連線通訊埠。例如 3306。
- vpc-name:虛擬私有雲網路名稱。例如 projects/project-id/global/networks/test-network。
- provider:與來源資料庫分類類型相關聯的供應器。
- 針對獨立 PostgreSQL 到 AlloyDB 執行個體,請使用
DATABASE_PROVIDER_UNSPECIFIED
,因為這個值與內部資料庫相關聯。 - 如要將 PostgreSQL 適用的 Cloud SQL 遷移至 AlloyDB 執行個體,請使用
CLOUDSQL
。 - 針對任何代管資料庫服務,請使用對應的
ENUM
值。請參閱DatabaseProvider
物件參考資料。
- 針對獨立 PostgreSQL 到 AlloyDB 執行個體,請使用
HTTP 方法和網址:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs?migrationJobId=migration-job-id
JSON 要求主體:
{ "displayName": "migration-job-name", "state": "NOT_STARTED", "type": "CONTINUOUS", "source": "projects/project-id/locations/region/connectionProfiles/source-connection-profile-id", "destination":"projects/project-id/locations/region/connectionProfiles/destination-connection-profile-id", "sourceDatabase": { "engine": "POSTGRESQL", "provider": "provider" }, "reverseSshConnectivity": { "vm": "vm-name", "vm_ip": "vm-ip-address", "vm_port": vm-port, "vpc": "vpc-name" } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165", "metadata": { "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata", "createTime": "2020-06-12T14:46:01.744267779Z", "target": "projects/project-id/locations/region/migrationJobs/migration-job-id", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
如要進一步瞭解如何使用 gcloud
建立資料庫移轉服務遷移工作,請按這裡。
取得遷移工作的相關資訊
REST
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- region:專案區域
- migration-job-id:遷移工作 ID
HTTP 方法和網址:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "projects/project-id/locations/region/migrationJobs/one-time-vpc-job", "createTime": "2020-06-12T15:48:39.666093835Z", "updateTime": "2020-06-12T15:48:39.666093835Z", "displayName": "migration-job-display-name", "state": "CREATING", "type": "CONTINUOUS", "source": "projects/project-id/locations/region/connectionProfiles/connection-profile-id", "destination": "projects/project-id/locations/region/connectionProfiles/connection-profile-id", "sourceDatabase": { "engine": "POSTGRESQL" }, "destinationDatabase": { "provider": "ALLOYDB" }, "vpcPeeringConnectivity": { "vpc": "default" } }
gcloud
如要進一步瞭解如何使用 gcloud
擷取遷移工作相關資訊,請按這裡。
列出遷移工作
REST
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- region:專案區域
orderBy:
使用這個篩選器,即可依字母順序擷取特定地區的所有遷移作業清單。舉例來說,orderBy=name
篩選器會依名稱依序傳回所有遷移工作。-
pageSize:
使用這個篩選器,指定資料庫遷移服務在頁面上擷取及顯示的遷移工作數量上限。舉例來說,如果設定pageSize=10
,資料庫遷移服務會針對網頁傳回最多 10 個遷移工作。
如果遷移工作超過 10 項,則會顯示在其他頁面。每個頁面的結尾都會顯示 nextPageToken
參數和專屬 ID (例如 oasndfoasdnoasun1241243ojsandf
)。您可以使用這組 ID 擷取下一個頁面的遷移工作清單。在最終頁面中,不會顯示 nextPageToken
參數和專屬 ID。
HTTP 方法和網址:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "migrationJobs": [ { "name": "projects/project-id/locations/region/migrationJobs/name-of-first-migration-job", "createTime": "2020-06-12T15:48:39.666093835Z", "updateTime": "2020-06-12T15:48:39.666093835Z", "displayName": "display-name-of-first-migration-job", "state": "NOT_STARTED", "type": "CONTINUOUS", "source": "projects/project-id/locations/region/connectionProfiles/connection-profile-id", "destination": "projects/project-id/locations/region/connectionProfiles/connection-profile-id", "sourceDatabase": { "engine": "POSTGRESQL" }, "destinationDatabase": { "provider": "ALLOYDB" }, "vpcPeeringConnectivity": { "vpc": "default" } } { "name": "projects/project-id/locations/region/migrationJobs/name-of-second-migration-job", "createTime": "2021-02-13T11:59:39.104613835Z", "updateTime": "2021-02-13T12:01:38.666093835Z", "displayName": "display-name-of-second-migration-job", "state": "RUNNING", "type": "CONTINUOUS", "source": "projects/project-id/locations/region/connectionProfiles/connection-profile-id", "destination": "projects/project-id/locations/region/connectionProfiles/connection-profile-id", "sourceDatabase": { "engine": "POSTGRESQL" }, "destinationDatabase": { "provider": "ALLOYDB" }, "staticIpConnectivity": {} "vpc": "default" } ], "nextPageToken": "unique-identifier" }
gcloud
如要進一步瞭解如何使用 gcloud
擷取所有遷移工作的相關資訊,請按這裡。
為遷移工作產生 SSH 通道設定指令碼
REST
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- region:專案區域
- migration-job-id:遷移工作 ID
HTTP 方法和網址:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:generateSshScript
JSON 要求主體:
{ "vm":"vm-name", "vmCreationConfig":{ "vmMachineType":"machine-type", "subnet":"subnet-name" } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165", "metadata": { "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata", "createTime": "2020-06-12T14:46:01.744267779Z", "target": "projects/project-id/locations/region/migrationJobs/migration-job-id", "verb": "generate", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
如要進一步瞭解如何使用 gcloud
為遷移工作產生 SSH 指令碼,請按這裡。
驗證遷移工作
以下是驗證遷移作業的要求。驗證遷移工作,可確保工作順利啟動及執行。
REST
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- region:專案區域
- migration-job-id:遷移工作 ID
HTTP 方法和網址:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:verify
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165", "metadata": { "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata", "createTime": "2020-06-12T14:46:01.744267779Z", "target": "projects/project-id/locations/region/migrationJobs/migration-job-id", "verb": "verify", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
如要進一步瞭解如何使用 gcloud
驗證遷移工作,請按這裡。
更新遷移工作
以下是要求更新現有遷移作業的顯示名稱。在要求中使用 updateMask
參數後,要求主體中只需包含這些欄位即可。
REST
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- region:專案區域
- migration-job-id:遷移工作 ID
HTTP 方法和網址:
PATCH https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id?updateMask=displayName
JSON 要求主體:
{ "displayName": "updated-display-name", }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165", "metadata": { "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata", "createTime": "2020-06-12T14:46:01.744267779Z", "target": "projects/project-id/locations/region/migrationJobs/migration-job-id", "verb": "update", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
如要進一步瞭解如何使用 gcloud
更新遷移工作,請按這裡。
啟動遷移工作
以下是啟動遷移工作的要求。
REST
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- region:專案區域
- migration-job-id:遷移工作 ID
HTTP 方法和網址:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:start
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165", "metadata": { "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata", "createTime": "2020-06-12T14:46:01.744267779Z", "target": "projects/project-id/locations/region/migrationJobs/migration-job-id", "verb": "start", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
如要進一步瞭解如何使用 gcloud
啟動遷移工作,請按這裡。
重新啟動失敗的遷移工作
以下是重新啟動遷移工作的要求。如果遷移作業失敗且無法復原,或是在完整傾印期間停止,則可以從頭重新啟動遷移工作。
REST
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- region:專案區域
- migration-job-id:遷移工作 ID
HTTP 方法和網址:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:restart
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165", "metadata": { "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata", "createTime": "2020-06-12T14:46:01.744267779Z", "target": "projects/project-id/locations/region/migrationJobs/migration-job-id", "verb": "restart", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
如要進一步瞭解如何使用 gcloud
重新啟動遷移工作,請按這裡。
停止遷移工作
以下是停止遷移工作的要求。
REST
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- region:專案區域
- migration-job-id:遷移工作 ID
HTTP 方法和網址:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:stop
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165", "metadata": { "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata", "createTime": "2020-06-12T14:46:01.744267779Z", "target": "projects/project-id/locations/region/migrationJobs/migration-job-id", "verb": "stop", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
如要進一步瞭解如何使用 gcloud
停止遷移工作,請按這裡。
繼續執行遷移工作
以下是要求繼續執行遷移工作的範例。
REST
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- region:專案區域
- migration-job-id:遷移工作 ID
HTTP 方法和網址:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:resume
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165", "metadata": { "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata", "createTime": "2020-06-12T14:46:01.744267779Z", "target": "projects/project-id/locations/region/migrationJobs/migration-job-id", "verb": "resume", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
如要進一步瞭解如何使用 gcloud
繼續執行遷移工作,請按這裡。
推送遷移工作
以下是要求將遷移工作升級的範例。
REST
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- region:專案區域
- migration-job-id:遷移工作 ID
HTTP 方法和網址:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:promote
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165", "metadata": { "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata", "createTime": "2020-06-12T14:46:01.744267779Z", "target": "projects/project-id/locations/region/migrationJobs/migration-job-id", "verb": "promote", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
如要進一步瞭解如何使用 gcloud
來推廣遷移工作,請按這裡。
刪除遷移工作
以下是刪除遷移作業的要求。
REST
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- region:專案區域
- migration-job-id:遷移工作 ID
HTTP 方法和網址:
DELETE https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165", "metadata": { "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata", "createTime": "2020-06-12T14:46:01.744267779Z", "target": "projects/project-id/locations/region/migrationJobs/migration-job-id", "verb": "delete", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
如要進一步瞭解如何使用 gcloud
刪除遷移作業,請按這裡。