總覽
本頁說明如何使用資料庫移轉服務 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
}
建立使用虛擬私有雲對等互連連線的連續遷移工作
以下是建立持續遷移工作的要求,這項工作會使用 VPC 對等互連連線,將 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 連線的連續遷移工作
以下是建立持續執行的遷移工作要求,以便使用反向 SSH 連線,將 Amazon RDS 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
- 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,資料庫遷移服務會針對網頁傳回最多 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 刪除遷移作業,請按這裡。