La base de données MySQL et la base de données PostgreSQL sont toutes deux des systèmes de gestion de bases de données relationnelles (SGBDR) open source classés respectivement 2 et 4, selon DBEngines.com. Les deux sont implémentés en C (C++ est également utilisé pour la base de données MySQL) et fournissent tous deux des fonctionnalités similaires, telles que la prise en charge XML, les index secondaires, la concurrence, la durabilité et les fonctions définies par l'utilisateur. La base de données PostgreSQL offre plusieurs avantages, dont certains sont les suivants :
- Prend en charge les types de données avancés tels que les tableaux multidimensionnels et les types définis par l'utilisateur
- Les expressions de table communes (CTE) et les fonctions de fenêtre sont disponibles depuis PostgreSQL 8.4, alors qu'elles n'ont été ajoutées à MySQL que dans la version 8.0
- Prend en charge les jointures externes complètes
- Prend en charge les listes VALUES pour générer une "table constante" qui peut être utilisée dans une requête
- Prend en charge les fonctions de retour d'ensemble generate_series
- Prend en charge les requêtes parallèles en utilisant plusieurs processeurs pour répondre plus rapidement aux requêtes depuis la version 9.6
- Prend en charge les vues matérialisées
Si vous migrez de MySQL vers la base de données PostgreSQL AWS, DMS (Database Migration Service) fournit un service géré fiable sans aucun temps d'arrêt pour la réplication continue des données. Dans quatre didacticiels, nous discuterons de la migration d'une instance de base de données MySQL vers une base de données PostgreSQL, toutes deux exécutées sur AWS Relational Database Service (RDS). Ce didacticiel comporte les sections suivantes :
- Configuration de l'environnement
- Création d'un utilisateur IAM pour DMS
Configuration de l'environnement
Le seul prérequis est un compte AWS, qui peut être créé sur ce lien. Créez une clé de chiffrement principale KMS à utiliser avec DMS si une clé principale n'est pas déjà disponible. Une clé principale KMS est créée à partir des IAM>clés de chiffrement tableau de bord. Nous avons utilisé une clé de chiffrement principale KMS appelée "dbms" dans ce didacticiel.
Installez la base de données MySQL et la base de données PostgreSQL sur une machine locale pour utiliser les applications d'interface client pour vous connecter aux instances de base de données MySQL et PostgreSQL sur RDS.
Création d'un utilisateur IAM pour DMS
DMS est entièrement intégré à plusieurs autres services AWS, tels que RDS pour les bases de données, IAM pour la gestion des identités et des accès, KMS pour le chiffrement des données et CloudWatch pour la journalisation. DMS prend également en charge S3 (Simple Storage Service) en tant que cible pour une migration. Dans cette section, nous allons créer un utilisateur IAM qui est utilisé avec DMS pour migrer une instance de base de données MySQL vers la base de données PostgreSQL. L'utilisateur IAM est créé comme suit :
- Créez une stratégie IAM avec toutes les autorisations et déclarations de stratégie requises.
- Créez un utilisateur IAM en fonction de la stratégie IAM.
Pour créer une stratégie IAM, cliquez sur Créer une stratégie dans le tableau de bord IAM, comme illustré à la figure 1.
Figure 1 : Créer une politique
Dans Créer une politique Assistant, sélectionnez Créer votre propre politique , comme illustré à la figure 2.
Figure 2 : Sélection de l'option Créer votre propre politique
Dans Politique d'examen , spécifiez un nom de stratégie (DMS). Ensuite, copiez le document de politique suivant dans le document de politique champ ou région.
{ "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": "*" } ] }
Le document de stratégie ajoute des autorisations pour accéder à CloudWatch pour la journalisation et à RDS pour les bases de données. Cliquez sur Valider la politique et, si le message est "La politique est valide", cliquez sur Créer une politique , comme illustré à la figure 3.
Figure 3 : Créer une politique
Si la stratégie est créée, le message illustré à la figure 4 doit s'afficher.
Figure 4 : Le DMS a été créé
Ensuite, ajoutez un utilisateur IAM. Sélectionnez Utilisateurs dans le tableau de bord IAM et cliquez sur Ajouter un utilisateur , comme illustré à la figure 5.
Figure 5 : Ajouter un utilisateur
Spécifiez un Nom d'utilisateur (dvohra). Ensuite, sélectionnez les deux options répertoriées pour Type d'accès (voir Figure 6).
Figure 6 : Ajout de détails sur l'utilisateur
Sélectionnez le mot de passe personnalisé option pour le mot de passe de la console , spécifiez un mot de passe, puis cliquez sur Suivant :Autorisations , comme illustré à la figure 7.
Figure 7 : Configuration du type d'accès
Ensuite, définissez les autorisations pour l'utilisateur. Cliquez sur Joindre directement les règles existantes , comme illustré à la figure 8.
Figure 8 : Joindre directement les politiques existantes
Dans le type de stratégie filtre, recherchez "DMS", qui est la stratégie créée précédemment. Sélectionnez la stratégie DMS comme illustré à la figure 9, puis cliquez sur Suivant.
Figure 9 : Sélection de la politique DMS
En révision , la stratégie DMS doit être répertoriée en tant que Stratégie gérée dans les Autorisations résumé. Cliquez sur Créer un utilisateur , comme illustré à la Figure 10.
Figure 10 : Créer un utilisateur
L'utilisateur IAM est créé (voir Figure 11).
Figure 11 : Utilisateur IAM créé
L'utilisateur IAM est répertorié dans les IAM>Utilisateurs tableau de bord, comme illustré à la Figure 12.
Figure 12 : Utilisateur IAM
Pour vous connecter en tant qu'utilisateur IAM créé, cliquez sur le lien de l'utilisateur, sélectionnez les Identifiants de sécurité et copiez le lien de connexion à la console , comme illustré à la Figure 13.
Figure 13 : Lien de connexion à la console
Connectez-vous en tant qu'utilisateur IAM créé à l'aide du lien de connexion à la console pour les sections suivantes.
Conclusion
Dans ce premier des quatre tutoriels sur la migration d'une instance de base de données MySQL sur RDS vers une instance de base de données Postgres sur RDS, nous avons créé un utilisateur IAM pour effectuer la migration.