總覽
本頁說明如何使用資料庫移轉服務 API,管理 PostgreSQL 來源資料庫的遷移工作。
您可以使用兩種方式存取資料庫移轉服務 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
- provider:與來源資料庫分類類型相關聯的供應商。
- 如果是獨立 PostgreSQL 執行個體,請使用
DATABASE_PROVIDER_UNSPECIFIED
,因為這個值與地端資料庫相關聯。 - 如果是 PostgreSQL 適用的 Cloud SQL 執行個體,請使用
CLOUDSQL
。 - 如果是任何代管資料庫服務,請使用對應的
ENUM
值。請參閱DatabaseProvider
物件參考資料。
- 如果是獨立 PostgreSQL 執行個體,請使用
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", "provider": "provider" }, //"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 }
建立使用虛擬私有雲對等互連連線的連續遷移工作
以下顯示建立連續遷移工作的要求,用於將 PostgreSQL 資料庫 (在 Google Compute Engine VM 上執行) 遷移至 PostgreSQL 適用的 Cloud SQL,並使用虛擬私有雲對等互連連線。
REST
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- region:專案區域
- migration-job-id:遷移工作 ID
- migration-job-name:遷移工作名稱
- source-connection-profile-id:來源連線設定檔 ID
- destination-connection-profile-id:目的地連線設定檔 ID
- provider:與來源資料庫分類類型相關聯的供應商。
- 如果是獨立 PostgreSQL 執行個體,請使用
DATABASE_PROVIDER_UNSPECIFIED
,因為這個值與地端資料庫相關聯。 - 如果是 PostgreSQL 適用的 Cloud SQL 執行個體,請使用
CLOUDSQL
。 - 如果是任何代管資料庫服務,請使用對應的
ENUM
值。請參閱DatabaseProvider
物件參考資料。
- 如果是獨立 PostgreSQL 執行個體,請使用
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" }, "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 連線的連續遷移工作
以下顯示要求,用於建立持續執行的遷移工作,將 Amazon RDS PostgreSQL 資料庫遷移至 PostgreSQL 適用的 Cloud SQL,並使用反向 SSH 連線。
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 執行個體,請使用
DATABASE_PROVIDER_UNSPECIFIED
,因為這個值與地端資料庫相關聯。 - 如果是 PostgreSQL 適用的 Cloud SQL 執行個體,請使用
CLOUDSQL
。 - 如果是任何代管資料庫服務,請使用對應的
ENUM
值。請參閱DatabaseProvider
物件參考資料。
- 如果是獨立 PostgreSQL 執行個體,請使用
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
建立資料庫移轉服務移轉作業,請按一下這裡。
建立遷移工作,並透過 IP 許可清單連線
以下顯示使用 IP 允許清單,為遷移獨立 PostgreSQL 執行個體或代管資料庫服務至 PostgreSQL 適用的 Cloud SQL 資料庫,建立遷移工作的要求。
REST
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- region:專案區域
- migration-job-id:遷移工作 ID
- migration-job-name:遷移工作名稱
- source-connection-profile-id:來源連線設定檔 ID
- destination-connection-profile-id:目的地連線設定檔 ID
- provider:與來源資料庫分類類型相關聯的供應商。
- 如果是獨立 PostgreSQL 執行個體,請使用
DATABASE_PROVIDER_UNSPECIFIED
,因為這個值與地端資料庫相關聯。 - 如果是 PostgreSQL 適用的 Cloud SQL 執行個體,請使用
CLOUDSQL
。 - 如果是任何代管資料庫服務,請使用對應的
ENUM
值。請參閱DatabaseProvider
物件參考資料。
- 如果是獨立 PostgreSQL 執行個體,請使用
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" }, "staticIpConnectivity": {} }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 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": "CLOUDSQL" }, "vpcPeeringConnectivity": { "vpc": "default" } }
gcloud
如要進一步瞭解如何使用 gcloud
擷取遷移作業的相關資訊,請按一下這裡。
列出遷移工作
REST
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- region:專案區域
orderBy:
使用這個篩選器,即可依字母順序擷取特定區域的所有遷移作業清單。舉例來說,orderBy=name
篩選條件會依名稱字母順序,傳回所有遷移工作。-
pageSize:
使用這個篩選器,指定資料庫移轉服務在頁面上擷取及顯示的遷移工作數量上限。舉例來說,如果設定pageSize=10
,Database Migration Service 會傳回一頁最多 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": "CLOUDSQL" }, "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": "CLOUDSQL" }, "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
刪除遷移作業,請按一下這裡。