Panoramica
In questa pagina scoprirai come utilizzare l'API Database Migration Service per gestire i job di migrazione per un database di destinazione AlloyDB.
Puoi utilizzare l'API Database Migration Service in due modi. Puoi effettuare chiamate all'API REST o utilizzare Google Cloud CLI (interfaccia a riga di comando).
Per informazioni di alto livello sull'utilizzo di gcloud
per gestire i job di migrazione di Database Migration Service, fai clic qui.
Creare una bozza di un job di migrazione
Di seguito è riportata una richiesta di creazione di un job di migrazione in modalità bozza. In questo modo, non devi creare il job di migrazione tutto in una volta. Puoi crearne una parte e poi aggiornarla utilizzando l'operazione PATCH
.
Ad esempio, se vuoi creare un job di migrazione, ma non disponi del database di destinazione o del metodo di connettività di rete, puoi utilizzare il seguente codice:
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- migration-job-id: l'ID job di migrazione
- migration-job-name: il nome del job di migrazione
- source-connection-profile-id: l'ID del profilo di connessione di origine
- destination-connection-profile-id: l'ID del profilo di connessione di destinazione
Metodo HTTP e URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs?migrationJobId=migration-job-id
Corpo JSON della richiesta:
{ "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" //} }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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 }
Crea un job di migrazione continua con connettività di peering VPC
Di seguito è riportata una richiesta di creazione di un job di migrazione continua per la migrazione di un database PostgreSQL ad AlloyDB (in esecuzione su una VM Google Compute Engine) a Cloud SQL per PostgreSQL ad AlloyDB utilizzando la connettività VPC peering.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- migration-job-id: l'ID job di migrazione
- migration-job-name: il nome del job di migrazione
- source-connection-profile-id: l'ID del profilo di connessione di origine
- destination-connection-profile-id: l'ID del profilo di connessione di destinazione
Metodo HTTP e URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs?migrationJobId=migration-job-id
Corpo JSON della richiesta:
{ "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" } }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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
Per ulteriori informazioni sull'utilizzo di gcloud
per creare job di migrazione di Database Migration Service, fai clic qui.
Crea un job di migrazione continua con connettività SSH inversa
Di seguito è riportata una richiesta di creazione di un job di migrazione in esecuzione continua per la migrazione di un database Amazon RDS PostgreSQL ad AlloyDB a Cloud SQL per PostgreSQL ad AlloyDB, utilizzando la connettività SSH inversa.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- migration-job-id: l'ID job di migrazione
- migration-job-name: il nome del job di migrazione
- source-connection-profile-id: l'ID del profilo di connessione di origine
- destination-connection-profile-id: l'ID del profilo di connessione di destinazione
- vm-name: il nome della VM SSH. Ad esempio, dms-ssh-bastion.
- vm-ip-address: l'indirizzo IP della VM SSH. Ad esempio, 11.22.33.44.
- vm-port: la porta di connessione della VM SSH. Ad esempio, 3306.
- vpc-name: il nome della rete VPC. Ad esempio, projects/project-id/global/networks/test-network.
- provider: il provider associato al tipo di classificazione del database di origine.
- Per un'istanza PostgreSQL standalone in AlloyDB, utilizza
DATABASE_PROVIDER_UNSPECIFIED
perché questo valore è associato a un database on-premise. - Per un'istanza Cloud SQL per PostgreSQL in AlloyDB, utilizza
CLOUDSQL
. - Per qualsiasi servizio di database gestito, utilizza il valore
ENUM
corrispondente. Consulta il riferimento all'oggettoDatabaseProvider
.
- Per un'istanza PostgreSQL standalone in AlloyDB, utilizza
Metodo HTTP e URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs?migrationJobId=migration-job-id
Corpo JSON della richiesta:
{ "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" } }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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
Per ulteriori informazioni sull'utilizzo di gcloud
per creare job di migrazione di Database Migration Service, fai clic qui.
Visualizzare informazioni su un job di migrazione
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- migration-job-id: l'ID job di migrazione
Metodo HTTP e URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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
Per ulteriori informazioni sull'utilizzo di gcloud
per recuperare informazioni sul job di migrazione, fai clic qui.
Elenca i job di migrazione
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
orderBy:
Utilizza questo filtro per recuperare un elenco di tutti i job di migrazione per una determinata regione in ordine alfabetico. Ad esempio, il filtroorderBy=name
restituisce tutti i job di migrazione in ordine alfabetico per nome.-
pageSize:
Utilizza questo filtro per specificare il numero massimo di job di migrazione che Database Migration Service recupera e mostra in una pagina. Ad esempio, impostandopageSize=10
, Database Migration Service restituirà fino a 10 job di migrazione per una pagina.
Se sono presenti più di 10 job di migrazione, questi vengono visualizzati in altre pagine. Alla fine di ogni pagina vengono visualizzati un parametro nextPageToken
e un identificatore univoco (ad esempio oasndfoasdnoasun1241243ojsandf
). Utilizza l'identificatore per recuperare l'elenco dei job di migrazione per la pagina successiva. Nella pagina finale, il parametro nextPageToken
e l'identificatore univoco non vengono visualizzati.
Metodo HTTP e URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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
Per ulteriori informazioni sull'utilizzo di gcloud
per recuperare informazioni su tutti i job di migrazione, fai clic qui.
Genera uno script di configurazione del tunnel SSH per un job di migrazione
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- migration-job-id: l'ID job di migrazione
Metodo HTTP e URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:generateSshScript
Corpo JSON della richiesta:
{ "vm":"vm-name", "vmCreationConfig":{ "vmMachineType":"machine-type", "subnet":"subnet-name" } }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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
Per ulteriori informazioni sull'utilizzo di gcloud
per generare uno script SSH per il job di migrazione, fai clic qui.
Verificare un job di migrazione
Di seguito è riportata una richiesta di verifica di un job di migrazione. Verificando un job di migrazione, puoi assicurarti che venga avviato ed eseguito correttamente.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- migration-job-id: l'ID job di migrazione
Metodo HTTP e URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:verify
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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
Per ulteriori informazioni sull'utilizzo di gcloud
per verificare il job di migrazione, fai clic qui.
Aggiornare un job di migrazione
Di seguito è riportata una richiesta di aggiornamento del nome visualizzato di un job di migrazione esistente. Se utilizzi il parametro updateMask
nella richiesta, devi includere solo questi campi nel corpo della richiesta.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- migration-job-id: l'ID job di migrazione
Metodo HTTP e URL:
PATCH https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id?updateMask=displayName
Corpo JSON della richiesta:
{ "displayName": "updated-display-name", }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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
Per ulteriori informazioni sull'utilizzo di gcloud
per aggiornare il job di migrazione, fai clic qui.
Avviare un job di migrazione
Di seguito è riportata una richiesta di avvio di un job di migrazione.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- migration-job-id: l'ID job di migrazione
Metodo HTTP e URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:start
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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
Per ulteriori informazioni sull'utilizzo di gcloud
per avviare il job di migrazione, fai clic qui.
Riavviare un job di migrazione non riuscito
Di seguito è riportata una richiesta di riavvio di un job di migrazione. Un job di migrazione può essere riavviato dall'inizio se la migrazione non è riuscita e non è recuperabile o se è stata interrotta durante il dump completo.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- migration-job-id: l'ID job di migrazione
Metodo HTTP e URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:restart
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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
Per ulteriori informazioni sull'utilizzo di gcloud
per riavviare il job di migrazione, fai clic qui.
Interrompere un job di migrazione
Di seguito è riportata una richiesta di arresto di un job di migrazione.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- migration-job-id: l'ID job di migrazione
Metodo HTTP e URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:stop
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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
Per ulteriori informazioni sull'utilizzo di gcloud
per interrompere il job di migrazione, fai clic qui.
Riprendere un job di migrazione
Di seguito è riportata una richiesta di ripresa di un job di migrazione.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- migration-job-id: l'ID job di migrazione
Metodo HTTP e URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:resume
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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
Per ulteriori informazioni sull'utilizzo di gcloud
per riprendere il job di migrazione, fai clic qui.
Promuovere un job di migrazione
Di seguito è riportata una richiesta di promozione di un job di migrazione.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- migration-job-id: l'ID job di migrazione
Metodo HTTP e URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:promote
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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
Per ulteriori informazioni sull'utilizzo di gcloud
per promuovere il job di migrazione, fai clic qui.
Eliminare un job di migrazione
Di seguito è riportata una richiesta di eliminazione di un job di migrazione.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- migration-job-id: l'ID job di migrazione
Metodo HTTP e URL:
DELETE https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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
Per ulteriori informazioni sull'utilizzo di gcloud
per eliminare il job di migrazione, fai clic qui.