Il database MySQL e il database PostgreSQL sono entrambi sistemi di gestione di database relazionali (RDBMS) open source classificati rispettivamente al 2° e al 4° posto, secondo DBEngines.com. Entrambi sono implementati in C (il C++ viene utilizzato anche per il database MySQL) ed entrambi forniscono funzionalità simili, come supporto XML, indici secondari, concorrenza, durabilità e funzioni definite dall'utente. Il database PostgreSQL offre numerosi vantaggi, alcuni dei quali sono i seguenti:
- Supporta tipi di dati avanzati come array multidimensionali e tipi definiti dall'utente
- Le Common Table Expressions (CTE) e le funzioni Window sono disponibili da PostgreSQL 8.4, mentre sono state aggiunte a MySQL solo nella versione 8.0
- Supporta i join esterni completi
- Supporta gli elenchi VALUES per generare una "tabella costante" che può essere utilizzata in una query
- Supporta le funzioni di ritorno di set generate_series
- Supporta le query parallele facendo uso di più CPU per rispondere alle query più velocemente dalla versione 9.6
- Supporta le viste materializzate
Se si esegue la migrazione da MySQL al database PostgreSQL AWS, DMS (Database Migration Service) fornisce un servizio gestito affidabile con zero tempi di inattività per la replica continua dei dati. In quattro tutorial, discuteremo della migrazione di un'istanza del database MySQL al database PostgreSQL, entrambi in esecuzione su AWS Relational Database Service (RDS). Questo tutorial ha le seguenti sezioni:
- Impostazione dell'ambiente
- Creazione di un utente IAM per DMS
Impostazione dell'ambiente
L'unico prerequisito è un account AWS, che può essere creato a questo link. Crea una chiave di crittografia master KMS da utilizzare con DMS se una chiave master non è già disponibile. Una chiave master KMS viene creata dalle IAM>Chiavi di crittografia Pannello. In questo tutorial abbiamo utilizzato una chiave di crittografia master KMS chiamata "dbms".
Installa il database MySQL e il database PostgreSQL su una macchina locale per utilizzare le applicazioni dell'interfaccia client per connettersi alle istanze del database MySQL e PostgreSQL su RDS.
Creazione di un utente IAM per DMS
DMS è completamente integrato con molti altri servizi AWS, come RDS per i database, IAM per la gestione di identità e accessi, KMS per la crittografia dei dati e CloudWatch per la registrazione. DMS supporta anche S3 (Simple Storage Service) come destinazione per una migrazione. In questa sezione, creeremo un utente IAM che viene utilizzato con DMS per migrare un'istanza del database MySQL al database PostgreSQL. L'utente IAM viene creato come segue:
- Crea una policy IAM con tutte le autorizzazioni e le dichiarazioni di policy richieste.
- Crea un utente IAM in base alla policy IAM.
Per creare una policy IAM, fai clic su Crea policy nel dashboard IAM, come mostrato nella Figura 1.
Figura 1: Crea polizza
Nella Crea norma procedura guidata, seleziona Crea la tua polizza , come mostrato nella Figura 2.
Figura 2: Selezionando l'opzione Crea la tua polizza
In Norme di revisione , specifica un Nome criterio (DMS). Quindi, copia il seguente documento relativo alla politica nel Documento relativo alla politica campo o regione.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dms:*", "Resource": "*" }, { "Effect": "Allow", "Action": "s3:*", "Resource": "*" }, { "Effect": "Allow", "Action": "ds:*", "Resource": "*" }, { "Effect": "Allow", "Action": "rds:*", "Resource": "*" }, { "Effect": "Allow", "Action": "kms:*", "Resource": "*" }, { "Effect": "Allow", "Action": "iam:*", "Resource": "*" }, { "Effect": "Allow", "Action": "ec2:*", "Resource": "*" }, { "Effect": "Allow", "Action": "cloudwatch:*", "Resource": "*" }, { "Effect": "Allow", "Action": "aws-marketplace:*", "Resource": "*" }, { "Effect": "Allow", "Action": "logs:*", "Resource": "*" } ] }
Il documento della policy aggiunge le autorizzazioni per accedere a CloudWatch per la registrazione e RDS per i database. Fai clic su Convalida norma e, se il messaggio è "La norma è valida", fai clic su Crea norma , come mostrato nella Figura 3.
Figura 3: Crea polizza
Se la policy viene creata, dovrebbe essere visualizzato il messaggio mostrato nella Figura 4.
Figura 4: Il DMS è stato creato
Quindi, aggiungi un utente IAM. Seleziona Utenti nella dashboard IAM e fai clic su Aggiungi utente , come mostrato nella Figura 5.
Figura 5: Aggiungi utente
Specifica un Nome utente (dvohra). Quindi, seleziona entrambe le opzioni elencate per Tipo di accesso (vedi Figura 6).
Figura 6: Aggiunta di dettagli utente
Seleziona la Password personalizzata opzione per Password della console , specifica una password e fai clic su Avanti:autorizzazioni , come mostrato nella Figura 7.
Figura 7: Configurazione del tipo di accesso
Quindi, imposta le autorizzazioni per l'utente. Fai clic su Allega direttamente le norme esistenti , come mostrato nella Figura 8.
Figura 8: Allega direttamente le politiche esistenti
Nel tipo di criterio filtro, cerca "DMS", che è la politica creata in precedenza. Selezionare il criterio DMS come mostrato nella Figura 9 e fare clic su Avanti.
Figura 9: Selezione della politica DMS
In Revisione , la norma DMS deve essere elencata come Norma gestita nelle Autorizzazioni sommario. Fai clic su Crea utente , come mostrato nella Figura 10.
Figura 10: Crea utente
L'utente IAM viene creato (vedi Figura 11).
Figura 11: Utente IAM creato
L'utente IAM viene elencato negli IAM>Utenti dashboard, come mostrato nella Figura 12.
Figura 12: Utente IAM
Per accedere come creato dall'utente IAM, fai clic sul collegamento dell'utente, seleziona le Credenziali di sicurezza scheda e copia il link di accesso alla console , come mostrato nella Figura 13.
Figura 13: Link di accesso alla console
Accedi come utente IAM creato utilizzando il collegamento di accesso alla console per le sezioni successive.
Conclusione
In questo primo di quattro tutorial sulla migrazione di un'istanza di database MySQL su RDS a un'istanza di database Postgres su RDS, abbiamo creato un utente IAM per eseguire la migrazione.