In una serie di quattro tutorial, esploreremo la migrazione di un'istanza di database MySQL a un database PostgreSQL utilizzando AWS Database Migration Service (DMS). Nel primo tutorial, "Migrazione di MySQL a PostgreSQL su AWS RDS, parte 1", abbiamo introdotto il DMS e creato un utente IAM per il DMS. Nel secondo tutorial, Migrazione di MySQL a PostgreSQL su AWS RDS, parte 2", abbiamo creato istanze di MySQL e PostgreSQL su RDS e ci siamo collegati alle due istanze. In questo tutorial di continuazione, creeremo una migrazione DMS per eseguire la migrazione. Questo tutorial ha le seguenti sezioni:
- Creazione di una migrazione DMS
- Creazione di un'istanza di replica
- Creazione di endpoint delle attività di migrazione
- Creazione di un'attività di migrazione
- Conclusione
Creazione di una migrazione DMS
In questa sezione creeremo un Database Migration Service (DMS) per migrare il database MySQL al database PostgreSQL. Una migrazione DMS è costituita dai seguenti componenti:
- Istanza di replica
- Endpoint del database
- Compito
Discuteremo la creazione di ciascuno di questi nelle sottosezioni, ma prima devi creare una migrazione DMS. Accedi alla dashboard DMS e fai clic su Crea migrazione , come mostrato nella Figura 1.
Figura 1: Crea migrazione
Viene avviata la procedura guidata DMS. Fare clic su Avanti, come mostrato nella Figura 2.
Figura 2: Procedura guidata DMS
Creazione di un'istanza di replica
Quindi, configura un'istanza di replica, che stabilisce la connessione tra i database di origine e di destinazione, trasferisce i dati e memorizza nella cache le modifiche ai dati che si verificano durante il caricamento iniziale dei dati. Specificare un'istanza di replica Nome e Descrizione e seleziona una Classe di istanza (l'impostazione predefinita è dms.t2.medium), come mostrato nella Figura 3. Seleziona un VPC e seleziona l'opzione per configurare l'alta disponibilità con Mult-Az; l'impostazione predefinita è "No". Seleziona l'opzione Accessibile al pubblico .
Figura 3: Configurazione di un'istanza di replica
In Avanzate , mantieni le impostazioni predefinite per Spazio di archiviazione allocato (50 GB), Gruppo di sottorete di replica, Zona di disponibilità (nessuna preferenza) e Gruppo di sicurezza VPC (Utilizza impostazione predefinita), come mostrato nella Figura 4. Selezionare la chiave master KMS (dbms) creata in precedenza in Impostazione dell'ambiente sezione.
Figura 4: Configurazione delle impostazioni avanzate per l'istanza di replica
Fare clic su Avanti, come mostrato nella Figura 5.
Figura 5: Avanti
L'istanza di replica inizia a essere creata, come mostrato dal messaggio nella Figura 6. Successivamente, è necessario configurare le connessioni al database di origine e di destinazione, cosa che realizzeremo nella prossima sottosezione.
Figura 6: Inizia la creazione dell'istanza di replica
Creazione di endpoint delle attività di migrazione
La creazione dell'istanza di replica potrebbe richiedere alcuni minuti. Gli endpoint di migrazione possono essere aggiunti durante la creazione dell'istanza di replica. Seleziona il Motore di origine come "mysql", come mostrato nella Figura 7.
Figura 7: Selezione del motore di origine
Seleziona Motore di destinazione come "postgres", come mostrato nella Figura 8.
Figura 8: Selezione del motore di destinazione
In Nome server , specifica l'Endpoint per l'istanza database RDS per il database rimuovendo :port suffisso. Per un database MySQL, l'endpoint RDS è mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com:3306 . Pertanto, specifica il Nome server come mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com , come mostrato nella Figura 9. Per un database PostgreSQL su RDS, l'endpoint è postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com:5432; quindi, specifica il Nome server come postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com . Specificare la porta separatamente per i database di origine e di destinazione:3306 per il database MySQL e 5432 per Postgres.
Figura 9: Specifica del nome del server e della porta per i database di origine e di destinazione
Scorri verso il basso per ulteriori impostazioni di configurazione dell'endpoint, come mostrato nella Figura 10. Seleziona Modalità SSL come nessuno per entrambi i database di origine e di destinazione. Specificare il nome utente e la password configurati durante la creazione delle istanze database RDS. Specificare anche il nome del database PostgreSQL (postgresdb), come configurato durante la creazione dell'istanza database RDS.
Figura 10: Specificando modalità SSL, nome utente, password e SID o nome database
Nelle impostazioni avanzate, è possibile specificare attributi di connessione aggiuntivi disponibili per il database MySQL e il database PostgreSQL, ma nessuno è richiesto per questo tutorial. Selezionare la chiave master del Servizio di gestione delle chiavi (dbms) per i database di origine e di destinazione (vedere la figura 11). Per testare gli endpoint DMS, Esegui test vengono forniti i pulsanti, come mostrato nella Figura 11. Il Esegui test i pulsanti sono disattivati o disabilitati finché non viene creata l'istanza di replica.
Figura 11: Configurazione delle impostazioni avanzate per gli endpoint DMS
Quando l'istanza di replica è stata creata, viene visualizzato il messaggio "Istanza di replica creata correttamente", come mostrato nella Figura 12.
Figura 12: Istanza di replica creata correttamente
Dopo aver creato l'istanza di replica, Esegui test i pulsanti diventano abilitati. Fai clic su Esegui test , come mostrato nella Figura 13, per ogni database.
Figura 13: Esegui il test
Le connessioni iniziano a essere testate, come indicato dal messaggio "Testing endpoint connection" in Figura 14.
Figura 14: Test delle connessioni degli endpoint
Se le connessioni dell'endpoint sono state configurate come richiesto, dovrebbe essere visualizzato il messaggio "Connessione verificata con successo", come mostrato nella Figura 15. Fare clic su Avanti.
Figura 15: Connessione verificata con successo
Creazione di un'attività di migrazione
Dopo aver creato un'istanza di replica e gli endpoint del database, creeremo quindi un'attività di migrazione per connettersi agli endpoint e trasferire effettivamente i dati. In Crea attività procedura guidata, specificare un Nome attività (viene specificato anche un valore predefinito) e aggiungere una descrizione dell'attività (vedere la Figura 16). Seleziona l'opzione per Avvia attività alla creazione .
Figura 16: Creazione guidata attività
Gli endpoint di origine e di destinazione e l'istanza di replica sono stati precedentemente configurati e non sono modificabili durante la creazione di un'attività. Seleziona un Tipo di migrazione , che elenca tre opzioni, come mostrato nella Figura 17.
- Migra i dati esistenti :migra gli schemi, le tabelle e i dati delle tabelle esistenti che già esistono nel database di origine, ma non esegue la migrazione delle modifiche successive su base continuativa.
- Migra i dati esistenti e replica le modifiche in corso :migra gli schemi, le tabelle e i dati delle tabelle esistenti che già esistono nel database di origine e migra anche le modifiche successive su base continuativa.
- Replica solo le modifiche ai dati :non migra schemi, tabelle e dati esistenti e migra solo le modifiche ai dati.
Seleziona Migra i dati esistenti opzione, come mostrato nella Figura 17. Per migrare le modifiche, che è ciò che forniscono le altre due opzioni, il tempo di conservazione del log binario sull'istanza database MySQL deve essere aumentato a 24 ore o più.
Figura 17: Selezionando Tipo di migrazione come Migra dati esistenti
Quindi, configura le Impostazioni attività . La Modalità di preparazione della tabella target l'impostazione si applica alle tabelle nel database di destinazione e fornisce tre opzioni:
- Non fare nulla :i dati e i metadati delle tabelle di destinazione non vengono modificati
- Drop table sul target :le tabelle esistenti, se presenti, vengono eliminate e vengono create nuove tabelle
- Tronca :le tabelle vengono troncate, il che implica che i dati della tabella vengono eliminati ma i metadati della tabella non vengono modificati. Includi colonne LOB nella replica l'impostazione si applica alle colonne del tipo di dati LOB nel database di origine e fornisce tre opzioni:
- Non includere colonne LOB :le colonne LOB sono escluse dalla migrazione
- Modalità LOB completa :Migra LOB completi indipendentemente dalle dimensioni; Le LOB vengono migrate in blocchi, il che potrebbe rallentare il processo di migrazione
- Modalità LOB limitata :tronca i LOB alla dimensione specificata nella dimensione massima LOB (kb)
Seleziona Modalità preparazione tabella target come Non eseguire alcuna operazione, come mostrato nella Figura 18. Seleziona Includi colonne LOB nella replica come Modalità LOB limitata e specifica Massima dimensione LOB come 32 kb (predefinito). Seleziona Abilita registrazione opzione.
Figura 18: Impostazioni attività
Successivamente, aggiungi regole di selezione e regole di trasformazione in Mappatura tabella , come mostrato nella Figura 19. È possibile aggiungere mappature di tabelle utilizzando la Guida interfaccia utente o come JSON . Si consiglia l'interfaccia utente guidata. È necessario aggiungere almeno una regola di selezione e le regole di trasformazione sono facoltative. Vengono applicate le regole di selezione, mentre la selezione di schemi, tabelle e colonne dal database di origine e le regole di trasformazione vengono applicate prima della migrazione di schemi, tabelle e colonne al database di destinazione.
Figura 19: Mappature delle tabelle
Lo schema può essere selezionato da Il nome dello schema è menu a discesa o, se non ne sono elencati, seleziona Inserisci uno schema e specifica uno schema in Il nome dello schema è simile a campo. L'Azione elenco a discesa due opzioni:Includi ed Escludi . L'opzione Includi include le selezioni effettuate per schemi e tabelle e l'opzione Escludi esclude schemi e tabelle. Le Esclude vengono elaborate dopo le Include. Non tutti gli schemi devono essere selezionati e non tutte le tabelle di uno schema devono essere selezionate.
Aggiungeremo la seguente regola di selezione:
- Includi tutti gli schemi e tutte le tabelle dal database di origine
Per la regola di selezione, seleziona Inserisci uno schema e specifica Il nome dello schema è come % , che seleziona tutti gli schemi nel database di origine, come mostrato nella Figura 20. Specificare Il nome della tabella è come come % , che seleziona tutte le tabelle negli schemi selezionati. Seleziona Azione come Includi .
Figura 20: Configurazione di una regola di selezione
Fai clic su Aggiungi regola di selezione (vedi Figura 21).
Figura 21: Aggiunta di una regola di selezione
Viene aggiunta una regola di selezione, come mostrato nella Figura 22. Quando viene creata l'attività, un ruolo IAM dms-cloudwatch-logs-role viene creato per consentire a DMS di accedere a CloudWatch.
Figura 22: Regola di selezione aggiunta
Quindi, aggiungi una regola di trasformazione. A tale scopo, fai clic su aggiungi regola di trasformazione link, come mostrato nella Figura 23.
Figura 23: Aggiungi regola di trasformazione
Una regola di trasformazione ha impostazioni per il Target . La regola ha tre opzioni, come mostrato nella Figura 24.
- Schema
- Tabella
- Colonna
Dove specifica un sottoinsieme degli oggetti selezionati dalle regole di selezione. L'Azione è la trasformazione da applicare e sono disponibili le seguenti opzioni:
- Rinomina in (disponibile per gli oggetti Schema e Tabella)
- Rimuovi colonna (disponibile per Colonne)
- Rendi minuscolo (disponibile per schemi, tabelle e colonne)
- Rendi maiuscolo (disponibile per schemi, tabelle e colonne)
- Aggiungi prefisso (disponibile per schemi, tabelle e colonne)
- Rimuovi prefisso (disponibile per schemi, tabelle e colonne)
Figura 24: Regole di trasformazione Impostazioni
PostgreSQL utilizza il minuscolo negli schemi, nelle tabelle e nelle colonne. Aggiungeremo tre regole di trasformazione:
- Rendi tutti gli schemi minuscoli
- Rendi tutte le tabelle minuscole
- Rendi tutte le colonne minuscole
Per aggiungere la prima di queste regole di trasformazione, seleziona Target come Schema come mostrato nella Figura 25. Specificare Il nome dello schema è come % . Seleziona Azione come Rendi minuscolo e fai clic su Aggiungi regola di trasformazione .
Figura 25: Aggiunta di una regola di trasformazione
Viene aggiunta una regola di trasformazione (vedere la Figura 26). Per aggiungere un'altra regola di trasformazione, fai clic su aggiungi regola di trasformazione link di nuovo.
Figura 26: Regola di trasformazione aggiunta
Seleziona Obiettivo come Tabella , come mostrato nella Figura 27. Specificare Il nome dello schema è come % . Seleziona Il nome della tabella è come % . Seleziona Azione come Rendi minuscolo e fai clic su Aggiungi regola di trasformazione .
Figura 27: Aggiunta di una regola di trasformazione per rinominare una tabella
Seleziona Obiettivo come colonna , come mostrato nella Figura 28. Specificare Il nome dello schema è come % . Seleziona Il nome della tabella è come % . Seleziona Il nome della colonna è come % . Seleziona Azione come Rendi minuscolo e fai clic su Aggiungi regola di trasformazione .
Figura 28: Aggiunta di una regola di trasformazione per rendere il nome della colonna minuscolo
Le tre regole di selezione e una regola di trasformazione aggiunta sono mostrate nella Figura 29. Quando l'attività viene eseguita, le regole di selezione vengono applicate prima delle regole di trasformazione. Per le impostazioni avanzate, fai clic su Impostazioni avanzate , come mostrato nella Figura 29.
Figura 29: Regole di selezione e regole di trasformazione
In Impostazioni avanzate , seleziona Impostazioni tabella di controllo e specifica Crea tabella di controllo nella destinazione utilizzando lo schema come pubblico , come mostrato nella Figura 30, e fare clic su Fine.
Figura 30: Impostazione dello schema della tabella di controllo in Target
Viene aggiunta l'impostazione Avanzata (vedi Figura 31).
Figura 31: Impostazioni avanzate
Dopo aver configurato l'attività, fai clic su Crea attività , come mostrato nella Figura 32, per creare l'attività.
Figura 32: Crea attività
Viene creata un'attività di migrazione, come mostrato nella Figura 33. Inizialmente, lo stato dell'attività è "Creazione in corso".
Figura 33: Attività di migrazione
Un'attività può avere uno degli stati discussi nella Tabella 1.
Stato | Descrizione |
Creazione | L'attività è in fase di creazione. |
Pronto | L'attività è pronta per essere avviata ed eseguita. Di solito segue lo stato "Creating". |
Inizio | L'attività viene avviata, durante il quale l'attività si connette all'istanza di replica e agli endpoint del database. Vengono applicate le regole di selezione e trasformazione. |
In esecuzione | L'attività è in esecuzione, il che implica che l'attività sta migrando il database. |
Carica completa | L'attività ha completato il caricamento (migrazione) del database. |
Non riuscito | L'attività non è riuscita. |
Errore | Si è verificato un errore durante la migrazione. È possibile che la migrazione di alcuni schemi e tabelle sia riuscita, ma almeno uno schema o una tabella non è riuscita a migrare. |
Modifica | L'attività è in fase di modifica, in genere dopo che un utente ha modificato l'attività. |
Arresto | L'attività si sta interrompendo, che di solito è dopo che l'utente ha scelto di interrompere un'attività. |
Arrestato | L'attività è stata interrotta, il che potrebbe essere dovuto all'interruzione di un'attività da parte di un utente o perché viene utilizzato un tipo di migrazione di Migrazione dei dati esistenti e replica delle modifiche in corso e l'attività ha completato il caricamento iniziale . |
Eliminazione in corso | L'attività è in fase di eliminazione, a causa dell'eliminazione dell'attività da parte dell'utente. |
Tabella 1: Stati delle attività
Vengono creati due ruoli IAM, uno per CloudWatch e l'altro per VPC, come mostrato nella Figura 34.
Figura 34: Ruoli IAM per DMS
Conclusione
In questo terzo tutorial sulla migrazione di un'istanza di database MySQL su RDS a un'istanza di database Postgres su RDS, abbiamo creato una migrazione DMS che include l'istanza di replica, gli endpoint di migrazione e l'attività di migrazione. Nel quarto tutorial, discuteremo dell'esecuzione della migrazione DMS per eseguire la migrazione e valutare i risultati.