Google CloudSQL è un servizio gestito per database con supporto per MySQL e PostgreSQL. CloudSQL è integrabile con alcuni degli altri servizi di Google Cloud Platform, inclusa la replica dei dati su più zone con failover automatico. In questo articolo, discuteremo della migrazione di un'istanza di database MySQL da Google CloudSQL a AWS RDS utilizzando Database Migration Service (DMS). Questo articolo ha le seguenti sezioni:
- Impostazione dell'ambiente
- Creazione di un'istanza database RDS MySQL
- Connessione al database MySQL su RDS
- Creazione di un progetto Google Cloud Platform
- Creazione di un'istanza CloudSQL
- Aggiunta di un indirizzo IP di instradamento per l'istanza database CloudSQL alla tabella di instradamento VPC
- Creazione di un'istanza di replica DMS
- Aggiunta di una rete per la connettività dell'istanza di replica all'istanza database CloudSQL
- Creazione di endpoint di replica del database
- Creazione di un'attività di replica
- Esecuzione dell'attività di replica
- Esplorazione delle tabelle migrate
- Esplorazione dei log di CloudWatch
- Eliminazione di una migrazione
- Eliminazione di istanze database
- Conclusione
Impostazione dell'ambiente
È richiesto un account di fatturazione Google Cloud Platform. L'account del piano gratuito di Google Cloud Platform offre una prova gratuita per il primo anno. È richiesto anche un account AWS; questo può essere creato su https://aws.amazon.com/resources/create-account/.
Creazione di un'istanza database MySQL RDS
Poiché eseguiremo la migrazione di un database MySQL da CloudSQL a AWS RDS, è necessario creare un'istanza di database MySQL su RDS. Passare a RDS su https://aws.amazon.com/rds e, nella procedura guidata RDS, selezionare il motore come MySQL, come mostrato nella Figura 1.
Figura 1: Selezione del motore di database MySQL
In Produzione? , seleziona Sviluppo/Test , come mostrato nella Figura 2.
Figura 2: Selezione di Sviluppo e test
In Specifica dettagli DB , seleziona la casella di controllo Mostra solo le opzioni idonee al piano gratuito RDS , come mostrato nella Figura 3. Selezionare Modello di licenza come licenza pubblica generica. Seleziona la versione del motore DB come MySQL 5.6.35. Le versioni MySQL 5.5, 5.6 e 5.7 sono supportate per la destinazione DMS. Seleziona DB Instance Class come db.t2.micro, che ha una capacità di 1 vCPU e 1 GB di RAM. Seleziona Multi-AZ Deployment come No. Seleziona il tipo di storage come General Purpose (SSD) e lo storage allocato come 5 GB.
Figura 3: Specifica dettagli DB
Nelle impostazioni del database, specifica un identificatore di istanza database (mysqldb), Nome utente principale e Password principale, come mostrato nella Figura 4. Fare clic su Passaggio successivo.
Figura 4: Specificare le impostazioni del database
In Configura impostazioni avanzate, seleziona un VPC, come mostrato nella Figura 5. La migrazione DMS deve essere creata nello stesso VPC dell'istanza database RDS. Imposta la zona di disponibilità come us-east-1b. Seleziona l'opzione per creare un nuovo gruppo di sicurezza. In Opzioni database, specificare un Nome database (mysqldb). Specificare una porta database (3306) e selezionare un gruppo di parametri database.
Figura 5: Configurazione delle impostazioni avanzate
La maggior parte o tutte le altre impostazioni, inclusi Gruppo di opzioni, Abilita autenticazione database IAM, Abilita crittografia, Backup e Monitoraggio, possono essere mantenute come predefinite (vedere la Figura 6). È necessario abilitare i backup automatici per MySQL su RDS come origine DMS. Fai clic su Avvia istanza database .
Figura 6: Avvia istanza database
Inizia la creazione di una nuova istanza database, come mostrato dal messaggio nella Figura 7. Fai clic su Visualizza le tue istanze database per visualizzare le istanze database.
Figura 7: La tua istanza database è in fase di creazione
Viene avviata una nuova istanza database MySQL su RDS, come mostrato nella Figura 8.
Figura 8: Istanza database MySQL su RDS
Fare clic sul collegamento Gruppo di sicurezza, come mostrato nella Figura 9, per modificare le regole in entrata/in uscita per consentire il traffico da/verso tutti gli indirizzi IP.
Figura 9: Collegamento al gruppo di sicurezza
Seleziona la scheda In entrata e fai clic sul pulsante Modifica per modificare le regole in entrata, come mostrato nella Figura 10.
Figura 10: Modifica delle regole in entrata
In Modifica regole in entrata, imposta Tipo su Tutto il traffico, Protocollo su Tutto, Intervallo porte su 0-65535, Sorgente su Ovunque e fai clic su Salva (vedi Figura 11).
Figura 11: Modifica le regole in entrata
Le regole in entrata modificate sono mostrate nella Figura 12.
Figura 12: Regole in entrata
Non è necessario modificare le regole in uscita perché sono già impostate per consentire il traffico verso tutti gli IP di destinazione, come mostrato nella Figura 13.
Figura 13: Regole in uscita
Connessione al database MySQL su RDS
Ottenere l'host dell'istanza database RDS dall'endpoint; l'indirizzo host è l'endpoint con il suffisso della porta :3306 rimosso. Connettiti all'istanza del database MySQL su RDS utilizzando l'indirizzo host e la porta con il seguente comando mysql per avviare un'interfaccia della riga di comando MySQL.
mysql --host=mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com --port=3306 --user=dvohra --password=mysql5db
L'host, l'utente e la password sarebbero diversi per utenti diversi. Concedi l'accesso all'account MySQL all'utente DMS con i seguenti comandi, in cui l'utente DMS sarebbe diverso per utenti diversi.
GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON mysqldb.* TO 'dvohra'@'%'; GRANT ALL PRIVILEGES ON awsdms_control.* TO 'dvohra'@'%';
Creazione di un progetto Google Cloud Platform
Devi creare un progetto Google Cloud Platform per utilizzare CloudSQL. Per creare un progetto, fai clic su Crea un progetto vuoto collegamento nella pagina Iniziare, come mostrato nella Figura 14.
Figura 14: Crea un progetto vuoto
Nel Nuovo progetto procedura guidata, specificare un Nome progetto (MySQLDB) e fai clic su Crea , come mostrato nella Figura 15.
Figura 15: Nuovo progetto
Viene creato un nuovo progetto, come mostrato nella Dashboard nella Figura 16.
Figura 16: Nuovo progetto Google Cloud Platform
Creazione di un'istanza CloudSQL
In questa sezione creeremo un'istanza CloudSQL. Passare all'URL di CloudSQL https://cloud.google.com/sql/ in un browser, come mostrato nella Figura 17. Fare clic su Visualizza console.
Figura 17: Visualizza Console
Seleziona MySQLDB progetto e fai clic su Crea istanza , come mostrato nella Figura 18.
Figura 18: Crea istanza
In Crea un'istanza procedura guidata, seleziona MySQL e fai clic su Avanti , come mostrato nella Figura 19.
Figura 19: Scelta del motore come MySQL
In Scegli un tipo di istanza MySQL , fai clic su Scegli seconda generazione per selezionare il tipo di istanza MySQL di seconda generazione, come mostrato nella Figura 20. Sono elencati anche alcuni dei vantaggi del tipo di istanza di seconda generazione.
Figura 20: Scelta di un'istanza MySQL di seconda generazione
In Crea un'istanza MySQL di seconda generazione (vedi Figura 21), specifica un ID istanza e una password di root e seleziona una Regione e Zona. Fai clic su Crea .
Figura 21: Crea un'istanza MySQL di seconda generazione
Inizia la creazione di un'istanza MySQL, come mostrato nella tabella Istanze nella Figura 22.
Figura 22: Istanza MySQL di CloudSQL
Aggiunta di un indirizzo IP di instradamento per l'istanza database CloudSQL alla tabella di instradamento VPC
È necessario modificare la tabella di instradamento per il VPC in cui vengono create l'istanza database RDS e la migrazione DMS per consentire l'accesso all'indirizzo IP dell'istanza CloudSQL. Innanzitutto, ottieni l'indirizzo IP dell'istanza CloudSQL dalla Console CloudSQL, come mostrato nella Figura 23.
Figura 23: Indirizzo IP dell'istanza database CloudSQL
Fai clic sulla Tabella del percorso collegamento, come mostrato nella Figura 24, per il VPC in cui viene creata l'istanza database RDS e successivamente verrà creato il DMS.
Figura 24: Collegamento alla tabella di percorso
Seleziona il percorso elencato e fai clic su Modifica, come mostrato nella Figura 25.
Figura 25: Percorso>Modifica
Fai clic su Aggiungi un altro percorso (vedi Figura 26).
Figura 26: Aggiungi un altro percorso
Specificare l'indirizzo IP dell'istanza CloudSQL in Destinazione, come mostrato nella Figura 27.
Figura 27: Specificando Destinazione come indirizzo IP dell'istanza CloudSQL
Seleziona la destinazione come gateway Internet associato al VPC, come mostrato nella Figura 28. Un gateway Internet consente la comunicazione tra le istanze in un VPC e Internet.
Figura 28: Selezionando Destinazione come gateway Internet
Fare clic su Salva per salvare il percorso. Viene aggiunto un percorso, come mostrato nella Figura 29.
Figura 29: Percorso per istanza CloudSQL
Creazione di un'istanza di replica DMS
In questa sezione creeremo un'istanza di replica per la migrazione di un'istanza CloudSQL a RDS. Fai clic su Crea migrazione nella pagina iniziale del servizio di migrazione del database, come mostrato nella figura 30.
Figura 30: Crea migrazione
Nella pagina di benvenuto, fai clic su Avanti (vedi Figura 31).
Figura 31: Pagina di benvenuto>Avanti
In Crea istanza di replica pagina, specificare un nome e una descrizione, come mostrato nella Figura 32. Selezionare una Classe di istanza come dms.t2.medium. Selezionare la versione del motore di replica come 2.2.1. Seleziona lo stesso VPC in cui è stata creata l'istanza database RDS. Seleziona Multi-AZ A No. Seleziona la casella di controllo Accessibile pubblicamente.
Figura 32: Configurazione di un'istanza di replica
In Avanzate, specifica Memoria allocata (50 GB), seleziona un gruppo di sottorete di replica e seleziona Zona di disponibilità come per l'istanza database RDS, us-east-1b, come mostrato nella Figura 33. Seleziona il gruppo di sicurezza VPC predefinito. Seleziona la chiave master KMS creata per DMS.
Figura 33: Configurazione delle opzioni avanzate
Selezionare le impostazioni di manutenzione predefinite e fare clic su Avanti, come mostrato nella Figura 34.
Figura 34: Istanza di replica>Avanti
Viene visualizzato il messaggio "È in corso la creazione dell'istanza di replica", come mostrato nella Figura 35. Gli endpoint del database di origine e di destinazione possono essere configurati solo dopo la creazione dell'istanza di replica.
Figura 35: La tua istanza di replica è in fase di creazione
Quando l'istanza di replica è stata creata, viene visualizzato il messaggio "Istanza di replica creata correttamente" (vedere la Figura 36).
Figura 36: Istanza di replica creata correttamente
Le istanze di replica elenca la nuova istanza di replica creata, come mostrato nella Figura 37.
Figura 37: Istanze di replica
Aggiunta di una rete per la connettività dell'istanza di replica all'istanza database CloudSQL
Innanzitutto, determinare l'indirizzo IP su cui è in esecuzione l'istanza di replica. L'indirizzo IP può essere ottenuto dalla console dell'istanza di replica, come mostrato nella Figura 38.
Figura 38: Indirizzo IP per istanza di replica
Dopo aver ottenuto l'indirizzo IP, aggiungeremo una rete composta dall'indirizzo IP all'istanza MySQL su CloudSQL. Fare clic sul collegamento dell'istanza CloudSQL MySQL, come mostrato nella Figura 39.
Figura 39: Istanza database CloudSQL MySQL
Fare clic su Autorizzazione istanza database MySQL pagina dei dettagli, come mostrato nella Figura 40.
Figura 40: Autorizzazione
Fai clic su Aggiungi rete (vedi Figura 41).
Figura 41: Aggiungi rete
In Nuova rete , specifica un nome di rete e un indirizzo IP di rete come indirizzo IP dell'istanza di replica, come mostrato nella Figura 42, e fai clic su Fine.
Figura 42: Aggiunta di una nuova rete a CloudSQL
Viene aggiunta una nuova rete, come mostrato nella Figura 43. Fare clic su Salva per salvare la rete.
Figura 43: Salvataggio di una nuova rete
Viene visualizzato il messaggio "Istanza in aggiornamento", come mostrato nella Figura 44.
Figura 44: L'istanza è in fase di aggiornamento
Quando l'istanza è stata aggiornata, l'icona dell'istanza indica lo stesso, come mostrato nella Figura 45.
Figura 45: Istanza aggiornata
Fare clic su Panoramica (vedi Figura 46) per visualizzare la panoramica dell'istanza.
Figura 46: Panoramica
La nuova rete viene elencata in Reti autorizzate nei Dettagli istanza pagina, come mostrato nella Figura 47.
Figura 47: Reti autorizzate
Creazione di endpoint di replica del database
Successivamente, creeremo gli endpoint del database di origine e di destinazione. Specificare gli identificatori di endpoint per i database di origine e di destinazione. Per Motore sorgente, seleziona mysql , come mostrato nella Figura 48.
Figura 48: Selezionando il motore di origine come mysql
Seleziona Motore di destinazione come mysql inoltre, come mostrato nella Figura 49.
Figura 49: Selezionando Target Engine come MySQL
Per il nome del server di origine, copia l'indirizzo IPv4 dell'istanza CloudSQL, come mostrato nella Figura 50.
Figura 50: Indirizzo IPv4 dell'istanza CloudSQL
Per il database di destinazione, specificare il nome del server come Endpoint meno il suffisso della porta ":3306" per l'istanza database RDS per il database MySQL (vedere la Figura 51). Specificare la porta per i database di origine e di destinazione come 3306. Selezionare la modalità SSL come nessuna per le connessioni di origine e di destinazione. Specifica il nome utente per il database di origine come root e la password impostata durante la creazione dell'istanza CloudSQL. Allo stesso modo, imposta il nome utente e la password per il database di destinazione su RDS.
Figura 51: Configurazione dei dettagli di connessione al database di origine e di destinazione
Per la sezione Avanzate del database di origine e di destinazione, seleziona la chiave master KMS dms, che è stata creata per DMS. Fai clic su Esegui test , come mostrato nella Figura 52, per la connessione alla sorgente. Allo stesso modo, fai clic su Esegui test per la connessione di destinazione.
Figura 52: Esegui il test
Se il risultato del test è "Connessione verificata con successo" per le connessioni al database di origine e di destinazione, fare clic su Avanti, come mostrato nella Figura 53.
Figura 53: Test delle connessioni
Creazione di un'attività di replica
In Crea attività, specificare un nome e una descrizione dell'attività, come mostrato nella Figura 54. L'endpoint di origine, l'endpoint di destinazione e l'istanza di replica sono hardcoded. Seleziona Tipo di migrazione come Migra i dati esistenti. Seleziona la casella di controllo Avvia attività alla creazione.
Figura 54: Crea attività
In Impostazioni attività, seleziona/imposta Modalità preparazione tabella target come Non fare nulla , Includi colonne LOB nella replica come Modalità LOB limitata e la dimensione LOB massima di 32 kb, come mostrato nella Figura 55. Seleziona Abilita registrazione opzione.
Figura 55: Impostazioni attività
In Mappatura tabella , mostrato nella Figura 56, è necessario aggiungere almeno una regola di selezione.
Figura 56: Mappature delle tabelle
Seleziona Inserisci uno schema opzione in Il nome dello schema è campo. Specifica Il nome dello schema è come mysql , come mostrato nella Figura 57. Specificare Il nome della tabella è come innodb_index_stats. Seleziona Azione come Includi . Fai clic su Aggiungi regola di selezione .
Figura 57: Aggiunta di una regola di selezione
Per aggiungere un'altra regola di selezione, fai clic su aggiungi regola di selezione collegamento, come mostrato nella Figura 58.
Figura 58: Aggiungi regola di selezione
Aggiungi una regola di selezione per includere la tabella mysql.innodb_table_stats , come mostrato nella Figura 59.
Figura 59: Aggiunta di una regola di selezione per mysql.innodb_table_stats
È possibile aggiungere regole di selezione, una per ogni tabella, o utilizzando un'espressione regolare con caratteri jolly. Successivamente, utilizzeremo una % per aggiungere una regola di selezione. Fai clic su aggiungi regola di selezione , come mostrato nella Figura 60.
Figura 60: Aggiungi link alla regola di selezione
Specificare Schema come mysql e specifica Nome tabella come fuso_orario% , che rappresenta tutte le tabelle che iniziano con "time_zone" (vedi Figura 61).
Figura 61: Aggiunta di una regola di selezione per includere tutte le tabelle nello schema mysql che iniziano con time_zone
Fai clic su Crea attività per creare un'attività, come mostrato nella Figura 62.
Figura 62: Crea attività
Viene aggiunta una nuova attività con lo stato Creazione in corso inizialmente, come mostrato nella Figura 63. Fare clic su Aggiorna dati dal server periodicamente per aggiornare lo stato dell'attività.
Figura 63: Attività aggiunta con stato Creazione
Quando l'attività è stata creata ed è pronta per l'esecuzione, lo stato diventa Pronto, come mostrato nella Figura 64.
Figura 64: Stato attività Pronto
Esecuzione dell'attività di replica
Per avviare l'istanza di replica, fare clic sul pulsante Avvia/Riprendi, come mostrato nella Figura 65.
Figura 65: Avvia/Riprendi
Lo stato dell'attività diventa Inizio (vedi Figura 66). Periodicamente, fai clic su Aggiorna dati dal server pulsante per aggiornare lo stato come mostrato nella Figura 66.
Figura 66: Stato attività in corso
Lo stato dell'attività diventa In esecuzione quando l'attività inizia a essere eseguita. Una volta completato il caricamento completo, lo stato diventa Caricamento completato , come mostrato nella Figura 67.
Figura 67: Caricamento completo
Esplorazione delle tabelle migrate
Le Tabelle caricate colonna ha un valore di 7 per le sette tabelle migrate, come mostrato nella Figura 68.
Figura 68: Sette tabelle migrate
Per trovare i dettagli sulle tabelle migrate, seleziona le Statistiche tabella scheda, come mostrato nella Figura 69.
Figura 69: Statistiche tabella
Tutte le tabelle che sono state migrate vengono elencate, come mostrato nella Figura 70.
Figura 70: Tabelle migrate
Esplorazione dei log di CloudWatch
Per esplorare i log di CloudWatch, fai clic sul collegamento nei Registri scheda (vedi Figura 71).
Figura 71: Collegamento ai registri
I log di CloudWatch elencano una voce di log per ciascuna tabella migrata, come mostrato nella Figura 72. Quando tutte le tabelle configurate utilizzando le regole di selezione e trasformazione sono state migrate, viene aggiunta la voce di log "Tutte le tabelle sono caricate".
Figura 72: Registri di CloudWatch
Quando tutte le tabelle sono state caricate, una voce di registro Gestione attività terminata viene aggiunto, come mostrato nella Figura 73.
Figura 73: Gestione attività terminata
Eliminazione di una migrazione
Per eliminare una migrazione, la sequenza è inversa rispetto alla creazione di una migrazione.
- Elimina le attività di migrazione.
- Elimina gli endpoint del database.
- Elimina l'istanza di replica.
Per eliminare l'attività, seleziona l'attività e fai clic su Elimina, come mostrato nella Figura 74.
Figura 74: Attività>Elimina
Nella finestra di dialogo Elimina attività, fare clic su Elimina, come mostrato nella Figura 75.
Figura 75: Elimina la finestra di dialogo di conferma dell'attività
Lo stato dell'attività diventa Eliminazione in corso (vedi Figura 76).
Figura 76: Eliminazione attività
Per eliminare gli Endpoint, selezionare gli endpoint e fare clic su Elimina, come mostrato nella Figura 77.
Figura 77: Endpoint>Elimina
In Elimina endpoint finestra di conferma, fare clic su Elimina, come mostrato nella Figura 78.
Figura 78: Elimina la finestra di conferma dell'endpoint
Lo stato degli endpoint diventa Eliminazione, come mostrato nella Figura 79.
Figura 79: Eliminazione degli endpoint
Per eliminare un'istanza di replica, seleziona l'istanza di replica e fai clic su Elimina, come mostrato nella Figura 80.
Figura 80: Istanze di replica>Elimina
In Elimina istanza di replica finestra di conferma, fare clic su Elimina (vedere la Figura 81).
Figura 81: Finestra di dialogo di conferma Elimina istanza di replica
Lo stato dell'istanza di replica diventa Eliminazione, come mostrato nella Figura 82.
Figura 82: Eliminazione dell'istanza di replica
Eliminazione di istanze database
Quindi, elimina i database di origine e di destinazione. Per eliminare il database di destinazione, che è un database MySQL su RDS, selezionare l'istanza del database nella tabella Tutte le istanze e fare clic su Azioni istanza>Elimina, come mostrato nella Figura 83.
Figura 83: Azioni istanza>Elimina
In Elimina istanza database, seleziona l'opzione per non creare uno snapshot finale e seleziona la casella di controllo di riconoscimento, quindi fai clic su Elimina, come mostrato nella Figura 84.
Figura 84: Finestra di dialogo Elimina istanza database
L'istanza database RDS inizia a essere eliminata, come indicato dallo stato di eliminazione nella Figura 85.
Figura 85: Eliminazione dell'istanza database RDS
Per eliminare l'istanza database CloudSQL, fai clic con il pulsante destro del mouse su mysql Icona Gestione istanza database e seleziona Elimina (vedi Figura 86).
Figura 86: CloudSQL mysql>Elimina
In Eliminare l'istanza? finestra di dialogo di conferma, specifica il nome dell'istanza nel campo fornito per confermare che l'istanza deve essere eliminata e fai clic su Elimina, come mostrato nella Figura 87.
Figura 87: Finestra di dialogo di conferma dell'eliminazione dell'istanza
Conclusione
In questo articolo abbiamo discusso della migrazione di MySQL su CloudSQL ad AWS RDS utilizzando AWS Database Migration Service.