Panoramica
In questa pagina scoprirai come utilizzare l'API Database Migration Service per gestire i profili di connessione per un database di origine MySQL.
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 profili di connessione Database Migration Service, fai clic qui.
Creare un profilo di connessione per un database di origine MySQL
Di seguito è riportata una richiesta di creazione di un profilo di connessione per un database di origine MySQL.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- connection-profile-id: l'ID profilo di connessione
- connection-profile-display-name: il nome visualizzato del profilo di connessione
- host-ip-address: l'indirizzo IP di origine
- username: il nome utente del database
- password: la password dell'utente del database
- client-key: la chiave privata non criptata con codifica PEM PKCS#1 o PKCS#8 associata
al certificato client. Se viene utilizzato questo campo, il campo
clientCertificate
è obbligatorio. - client-certificate: il certificato x509 con codifica PEM che verrà utilizzato dalla replica per eseguire l'autenticazione nel server di database di origine.Se viene utilizzato questo campo, il campo
clientKey
è obbligatorio. - ca-certificate: obbligatorio. Il certificato x509 con codifica PEM della CA che ha firmato il certificato del server di database di origine. La replica utilizzerà questo certificato per verificare la connessione all'host corretto.
Metodo HTTP e URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
Corpo JSON della richiesta:
{ "displayName": "connection-profile-display-name", "mysql": { "host": "host-ip-address", "port": 3306, "username": "username", "password": "password", "ssl": { "clientKey": "client-key", "clientCertificate": "client-certificate", "caCertificate": "ca-certificate" } } }
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/connectionProfiles/connection-profile-id", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
Per informazioni di alto livello sull'utilizzo di gcloud
per creare profili di connessione di Database Migration Service, fai clic qui.
Per ulteriori informazioni sull'utilizzo di gcloud
per creare un profilo di connessione per un database di origine MySQL, fai clic qui.
Dopo la creazione, puoi visualizzare le informazioni sul tuo profilo di connessione chiamando il metodo connectionProfiles/get
.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- connection-profile-id: l'ID profilo di connessione
Metodo HTTP e URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/project-id/locations/region/connectionProfiles/connection-profile-id", "createTime": "2019-12-22T16:17:37.159786963Z", "updateTime": "2019-12-24T13:13:39.455857411Z", "state": "READY", "displayName": "connection-profile-display-name", "mysql": { "host": "host-ip-address", "port": 3306, "username": "username" } }
gcloud
Per ulteriori informazioni sull'utilizzo di gcloud
per recuperare informazioni sul profilo di connessione, fai clic qui.
Creare un profilo di connessione per un database di origine Cloud SQL per MySQL
Di seguito è riportata una richiesta di creazione di un profilo di connessione per un database di origine Cloud SQL per MySQL. Questo esempio utilizza un profilo di connessione MySQL perché si connette al motore del database MySQL e non al livello di gestione Cloud SQL.
Per creare l'accoppiamento tra l'origine e la replica utilizzando Cloud SQL, devi fornire l'ID istanza per il tuo database Cloud SQL. Puoi trovare il valore dell'ID istanza utilizzando il metodo
databases/list
dell'API Cloud SQL Admin.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- connection-profile-id: l'ID profilo di connessione
- connection-profile-display-name: il nome visualizzato del profilo di connessione
- host-ip-address: l'indirizzo IP di origine
- username: il nome utente del database
- password: la password dell'utente del database
- cloud-sql-instance-id: l'ID istanza Cloud SQL
Metodo HTTP e URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
Corpo JSON della richiesta:
{ "displayName": "connection-profile-display-name", "mysql": { "host": "host-ip-address", "port": 3306, "username": "username", "password": "password", "cloud_sql_id": "cloud-sql-instance-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/connectionProfiles/connection-profile-id", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
Per informazioni di alto livello sull'utilizzo di gcloud
per creare profili di connessione di Database Migration Service, fai clic qui.
Per ulteriori informazioni sull'utilizzo di gcloud
per creare un profilo di connessione per un database di origine Cloud SQL per MySQL, fai clic qui.
Crea un profilo di connessione per la destinazione Cloud SQL per MySQL
Di seguito è riportata una richiesta di creazione di un profilo di connessione per una destinazione Cloud SQL per MySQL. Database Migration Service utilizza le informazioni contenute in questa richiesta per creare una nuova istanza Cloud SQL per MySQL.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- connection-profile-id: l'ID profilo di connessione
- connection-profile-display-name: il nome visualizzato del profilo di connessione
- database-version: la versione del database. Ad esempio, MYSQL_5_7.
- tier: il tipo di macchina. Ad esempio, db-custom-1-4096.
- data-disk-type: il tipo di disco dati. Ad esempio PD_SSD.
- data-disk-size-gb: la dimensione del disco dati in GB. Ad esempio, 20.
- zone: la zona nella regione del progetto
- cmek_key_name: Facoltativo: il percorso completo e il nome di una chiave di crittografia gestita dal cliente (CMEK). Ad esempio, "projects/project-id/locations/location/keyRings/ring/cryptoKeys/customer-managed-encryption-key".
Tutti i dati archiviati in Google Cloud sono criptati a riposo utilizzando gli stessi sistemi di gestione delle chiavi rafforzati che utilizziamo per i nostri dati criptati. Questi sistemi di gestione delle chiavi forniscono controlli e verifiche rigorosi dell'accesso alle chiavi e criptano i dati utente at-rest utilizzando gli standard di crittografia AES-256. Non è richiesta alcuna configurazione o gestione.La crittografia at-rest predefinita di Google Cloudè la scelta migliore per gli utenti che non hanno requisiti specifici relativi alla conformità o alla località del materiale crittografico.
Se hai bisogno di un maggiore controllo sulle chiavi utilizzate per criptare i dati a riposo all'interno di un progetto Google Cloud , Database Migration Service offre la possibilità di proteggere i dati utilizzando le chiavi di crittografia gestite da te in Cloud Key Management Service (KMS). Queste chiavi di crittografia sono chiamate chiavi di crittografia gestite dal cliente (CMEK). Quando proteggi i dati in Database Migration Service con CMEK, sei tu ad avere il controllo del CMEK.
Il parametro cmek_key_name
è associato a un CMEK che Database Migration Service può utilizzare per criptare i dati di cui è stata eseguita la migrazione dall'origine alla destinazione. Il CMEK è rappresentato
dal segnaposto customer-managed-encryption-key.
Il segnaposto ring rappresenta il keyring per il tuo CMEK. Un mazzo di chiavi organizza le chiavi in una posizione specifica di Google Cloud e ti consente di gestire il controllo dell'accesso su gruppi di chiavi. Il nome di un mazzo di chiavi non deve essere univoco in un progetto Google Cloud , ma deve essere univoco all'interno di una determinata posizione. Per ulteriori informazioni sui mazzi di chiavi, consulta le risorse Cloud KMS.
Durante la creazione del profilo di connessione, Database Migration Service verificherà che la chiave CMEK esista e che Database Migration Service disponga delle autorizzazioni per utilizzarla.
Se una di queste condizioni non viene soddisfatta, viene restituito il seguente messaggio di errore:
CMEK_DOES_NOT_EXIST_OR_MISSING_PERMISSIONS
Per risolvere il problema, verifica che la chiave che hai fornito esista e che l'account di servizio Database Migration Service disponga dell'autorizzazione cloudkms.cryptoKeys.get
per la chiave.
Se preferisci utilizzare il sistema di gestione delle chiavi interno di Google Cloudanziché un CMEK per criptare i dati, non includere il parametro e il valore cmek_key_name
nella richiesta API.
Metodo HTTP e URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
Corpo JSON della richiesta:
{ "displayName": "connection-profile-display-name", "cloudsql": { "settings": { "databaseVersion": "database-version", "tier": "machine-type", "storageAutoResizeLimit": 0, "activationPolicy": "ALWAYS", "ipConfig": { "authorizedNetworks": [], "enableIpv4": true, "privateNetwork": null }, "autoStorageIncrease": false, "dataDiskType": "data-disk-type", "dataDiskSizeGb": "data-disk-size", "zone": "zone", "sourceId": "projects/project-id/locations/region/connectionProfiles/connection-profile-id", "cmek_key_name": "projects/project-id/locations/location/keyRings/ring/cryptoKeys/customer-managed-encryption-key" } } }
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/connectionProfiles/connection-profile-id", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
Per informazioni di alto livello sull'utilizzo di gcloud
per creare profili di connessione di Database Migration Service, fai clic qui.
Visualizzare le informazioni su un profilo di connessione
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- connection-profile-id: l'ID profilo di connessione
Metodo HTTP e URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/project-id/locations/region/connectionProfiles/connection-profile-id", "createTime": "2019-12-22T16:17:37.159786963Z", "updateTime": "2019-12-24T13:13:39.455857411Z", "state": "READY", "displayName": "connection-profile-display-name", "mysql": { "host": "host-ip-address", "port": 3306, "username": "username" } }
gcloud
Per ulteriori informazioni sull'utilizzo di gcloud
per recuperare informazioni sul profilo di connessione, fai clic qui.
Elenca i profili di connessione
Di seguito è riportata una richiesta per recuperare informazioni su tutti i tuoi profili di connessione.
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 profili di connessione per una determinata regione in ordine alfabetico. Ad esempio, il filtroorderBy=name
restituisce tutti i profili di connessione in ordine alfabetico per nome.-
pageSize:
Utilizza questo filtro per specificare il numero massimo di profili di connessione che Database Migration Service recupera e mostra in una pagina. Ad esempio, impostandopageSize=10
, Database Migration Service restituirà fino a 10 profili di connessione per una pagina.
Se sono presenti più di 10 profili di connessione, questi vengono visualizzati in altre pagine. Alla fine di ogni pagina vengono visualizzati un parametro nextPageToken
e un identificatore univoco. Utilizza l'identificatore per recuperare l'elenco dei profili di connessione per la pagina seguente.
Metodo HTTP e URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "connectionProfiles": [ { "name": "projects/project-id/locations/region/connectionProfiles/name-of-first-connection-profile", "createTime": "2019-12-22T16:17:37.159786963Z", "updateTime": "2019-12-24T13:13:39.455857411Z", "state": "READY", "displayName": "display-name-of-first-connection-profile", "mysql": { "host": "host-ip-address-of-first-connection-profile", "port": port-number-of-first-connection-profile, "username": "username-of-first-connection-profile", "password_set": "true" } } { "name": "projects/project-id/locations/region/connectionProfiles/name-of-second-connection-profile", "createTime": "2020-11-21T19:22:25.153824963Z", "updateTime": "2020-11-11T11:15:14.451046111Z", "state": "READY", "displayName": "display-name-of-second-connection-profile", "mysql": { "host": "host-ip-address-of-second-connection-profile", "port": port-number-of-second-connection-profile, "username": "username-of-second-connection-profile", "password_set": "true" } } ] }
gcloud
Per ulteriori informazioni sull'utilizzo di gcloud
per recuperare informazioni su tutti i tuoi profili di connessione, fai clic qui.
Aggiornare un profilo di connessione
Di seguito è riportata una richiesta di aggiornamento dei campi Nome utente e Password di un profilo di connessione esistente. Se utilizzi il parametro updateMask
nella richiesta,
solo questi campi devono essere inclusi 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
- connection-profile-id: l'ID profilo di connessione
- username: il nome utente del database
- password: la password dell'utente del database
Metodo HTTP e URL:
PATCH https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id?updateMask=mysql.username,mysql.password
Corpo JSON della richiesta:
{ "mysql" { "username": "username", "password": "password" } }
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/connectionProfiles/connection-profile-id", "verb": "update", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
Per ulteriori informazioni sull'utilizzo di gcloud
per aggiornare il profilo di connessione, fai clic qui.
Eliminazione di un profilo di connessione
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- connection-profile-id: l'ID profilo di connessione
Metodo HTTP e URL:
DELETE https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-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/connectionProfiles/connection-profile-id", "verb": "delete", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
Per saperne di più sull'utilizzo di gcloud
per eliminare il profilo di connessione, fai clic qui.
Eliminare un profilo di connessione e l'istanza Cloud SQL associata
Di seguito è riportata una richiesta di eliminazione di un profilo di connessione di destinazione, nonché l'eliminazione in cascata dell'istanza Cloud SQL associata.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- region: la regione del progetto
- connection-profile-id: l'ID profilo di connessione
Metodo HTTP e URL:
DELETE https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id?force=true
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/connectionProfiles/connection-profile-id", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
Per ulteriori informazioni sull'utilizzo di gcloud
per eliminare sia il profilo di connessione sia l'istanza Cloud SQL associata, fai clic qui.