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 di 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 vengono criptati at-rest 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 at-rest degli utenti utilizzando gli standard di crittografia AES-256. Non è richiesta alcuna installazione, configurazione o gestione.La crittografia lato client 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 at-rest all'interno di un Google Cloud progetto, Database Migration Service offre la possibilità di proteggere i tuoi 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 keyring organizza le chiavi in una posizione specifica e ti consente di gestire il controllo dell'accesso su gruppi di chiavi. Google Cloud Il nome di un portachiavi non deve essere univoco in un Google Cloud progetto, ma deve essere univoco in una determinata località. 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é una chiave CMEK per criptare i tuoi 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.