Tutoriel : Migrer RDS PostgreSQL vers Azure Database pour PostgreSQL en ligne à l'aide de DMS

Important

Pour une expérience de migration plus simple et plus efficace, il est recommandé d’utiliser le nouveau service de migration dans Azure Database pour PostgreSQL. Ce service simplifie le processus en prenant en charge une variété d’environnements sources, ce qui garantit une transition sans problèmes vers Azure Database pour PostgreSQL.

Vous pouvez utiliser Azure Database Migration Service pour migrer des bases de données à partir d’une instance RDS PostgreSQL vers Azure Database pour PostgreSQL en maintenant en ligne la base de données source pendant la migration. En d’autres termes, la migration peut être effectuée avec un temps d’arrêt minimal de l’application. Dans ce tutoriel, vous allez migrer l’exemple de base de données DVD Rental à partir d’une instance RDS PostgreSQL 9.6 vers Azure Database pour PostgreSQL à l’aide de l’activité de migration en ligne dans Azure Database Migration Service.

Dans ce tutoriel, vous allez apprendre à :

  • Migrer l’exemple de schéma à l’aide de l’utilitaire pg_dump.
  • Créer une instance Azure Database Migration Service.
  • Créer un projet de migration en utilisant Azure Database Migration Service.
  • Exécuter la migration.
  • Surveiller la migration.
  • Effectuer le basculement de la migration.

Effectuer une migration en ligne à l’aide d’Azure Database Migration Service nécessite la création d’une instance basée sur le niveau tarifaire Premium. Pour plus d’informations, consultez la page de tarification du service Azure Database Migration Service. Nous chiffrons le disque pour empêcher le vol de données pendant le processus de migration.

Important

Pour une expérience de migration optimale, Microsoft vous recommande de créer une instance Azure Database Migration Service dans la même région Azure que la base de données cible. Le déplacement des données entre les régions ou les zones géographiques peut ralentir le processus de migration et introduire des erreurs.

Conseil

Dans Azure Database Migration Service, vous pouvez migrer vos bases de données hors connexion ou pendant qu’elles sont en ligne. Lors d’une migration hors connexion, le temps d’arrêt de l’application commence quand la migration commence. Pour limiter le temps d’arrêt au temps nécessaire pour basculer vers le nouvel environnement après la migration, utilisez une migration en ligne. Nous vous recommandons de tester une migration hors connexion pour déterminer si le temps d’arrêt est acceptable. Si le temps d’arrêt attendu n’est pas acceptable, effectuez une migration en ligne.

Cet article décrit comment effectuer une migration en ligne d’une instance locale de PostgreSQL vers Azure Database pour PostgreSQL.

Prérequis

Pour suivre ce didacticiel, vous devez effectuer les opérations suivantes :

  • Téléchargez et installez PostgreSQL Community Edition 9.5, 9.6 ou 10. La version du serveur PostgreSQL source doit être 9.5.11, 9.6.7, 10 ou une version ultérieure. Pour plus d’informations, consultez l’article Versions de bases de données PostgreSQL prises en charge.

    La version cible d'Azure Database pour PostgreSQL doit être égale ou ultérieure à la version PostgreSQL RDS. Par exemple, PostgreSQL RDS 9.6 peut migrer uniquement vers Azure Database pour PostgreSQL 9.6, 10 ou 11, et non vers Azure Database pour PostgreSQL 9.5.

  • Créer une instance d'Azure Database pour serveur flexible PostgreSQL.

  • Créez un Réseau virtuel Microsoft Azure pour Azure Database Migration Service à l’aide du modèle de déploiement Azure Resource Manager, qui fournit une connectivité site à site à vos serveurs sources locaux via ExpressRoute ou un VPN. Pour plus d’informations sur la création d’un réseau virtuel, consultez la documentation sur le réseau virtuel, en particulier les articles sur le démarrage rapide, qui fournissent des informations pas à pas.

  • Assurez-vous que les règles de groupe de sécurité réseau de votre réseau virtuel ne bloquent pas le port de sortie 443 de ServiceTag pour ServiceBus, Stockage et AzureMonitor. Pour plus d’informations sur le filtrage du trafic de groupe de sécurité réseau de réseau virtuel, consultez l’article Filtrer le trafic avec les groupes de sécurité réseau.

  • Configurez votre pare-feu Windows pour accéder au moteur de base de données.

  • Ouvrez votre pare-feu Windows pour permettre à Azure Database Migration Service d’accéder au serveur PostgreSQL source, par défaut le port TCP 5432.

  • Lorsque vous utilisez une appliance de pare-feu devant vos bases de données sources, vous devrez peut-être ajouter des règles de pare-feu pour permettre à Azure Database Migration Service d’accéder aux bases de données sources pour la migration.

  • Créez une règle de pare-feu de niveau serveur pour le serveur Azure Database pour PostgreSQL afin de permettre à Azure Database Migration Service d’accéder aux bases de données cibles. Fournissez la plage de sous-réseau du réseau virtuel utilisé pour Azure Database Migration Service.

Configurer AWS RDS PostgreSQL pour la réplication

  1. Pour créer un groupe de paramètres, suivez les instructions fournies par AWS dans l’article Utilisation de groupes de paramètres de base de données.

  2. Utilisez le nom d’utilisateur principal pour vous connecter à la source à partir d’Azure Database Migration Service. Si vous utilisez un compte différent du compte d’utilisateur principal, ce compte doit avoir les rôles rds_superuser et rds_replication. Le rôle rds_replication accorde des autorisations pour gérer les emplacements logiques et pour diffuser des données à l’aide d’emplacements logiques.

  3. Créez un groupe de paramètres avec la configuration suivante :

    • Définissez le paramètre rds.logical_replication dans votre groupe de paramètres de base de données sur 1.

    • max_wal_senders = [nombre de tâches simultanées]. Le paramètre max_wal_senders définit le nombre de tâches qui peuvent être exécutées simultanément. Paramètre recommandé : 10.

    • max_replication_slots = [nombre d’emplacements]. Paramètre recommandé : 5.

  4. Associez le groupe de paramètres que vous avez créé à l’instance RDS PostgreSQL.

Migrer le schéma

  1. Extrayez le schéma de la base de données source et appliquez-le à la base de données cible pour accomplir la migration de tous les objets de base de données, tels que les schémas de table, les index et les procédures stockées.

    La manière la plus simple de migrer uniquement le schéma consiste à utiliser pg_dump avec l’option -s. Pour plus d’informations, consultez les exemples dans le tutoriel relatif à Postgres pg_dump.

    pg_dump -O -h hostname -U db_username -d db_name -s > your_schema.sql
    

    Par exemple, pour vider un fichier de schéma pour la base de données dvdrental, utilisez la commande suivante :

    pg_dump -O -h localhost -U postgres -d dvdrental -s  > dvdrentalSchema.sql
    
  2. Créez une base de données vide dans le service cible, c’est-à-dire un serveur flexible Azure Database pour PostgreSQL.

  3. Importez le schéma dans le service cible, à savoir Azure Database pour PostgreSQL. Pour restaurer le fichier de vidage du schéma, exécutez la commande suivante :

    psql -h hostname -U db_username -d db_name < your_schema.sql
    

    Par exemple :

    psql -h mypgserver-20170401.postgres.database.azure.com  -U postgres -d dvdrental < dvdrentalSchema.sql
    

    Notes

    Le service de migration gère en interne l’activation et la désactivation des clés et des déclencheurs étrangers pour garantir une migration fiable des données. Par conséquent, vous n’avez pas à vous soucier d’apporter des modifications au schéma de la base de données cible.

Inscrire le fournisseur de ressources

Avant de créer votre première instance Database Migration Service, vous devez inscrire le fournisseur de ressources Microsoft.DataMigration.

  1. Connectez-vous au portail Azure. Recherchez et sélectionnez Abonnements.

    Capture d’écran de l’affichage des abonnements au portail.

  2. Sélectionnez l’abonnement dans lequel vous voulez créer l’instance Azure Database Migration Service, puis sélectionnez Fournisseurs de ressources.

    Capture d’écran de l’affichage des fournisseurs de ressources.

  3. Recherchez « migration », puis sélectionnez Inscrire pour Microsoft.DataMigration.

    Capture d’écran de l’inscription du fournisseur de ressources.

Créer une instance Azure Database Migration Service

  1. Dans le portail Azure, sélectionnez + Créer une ressource, recherchez Azure Database Migration Service, puis sélectionnez Azure Database Migration Service dans la liste déroulante.

    Capture d’écran de la Place de marché Azure.

  2. Dans l’écran Azure Database Migration Service, sélectionnez Créer.

    Capture d’écran de la création d’une instance Azure Database Migration Service.

  3. Dans l’écran Créer un service de migration, spécifiez un nom pour le service, l’abonnement, et un réseau virtuel nouveau ou existant.

  4. Sélectionnez l’emplacement dans lequel vous souhaitez créer l’instance Azure Database Migration Service.

  5. Sélectionnez un réseau virtuel existant ou créez-en un.

    Le réseau virtuel fournit à Azure Database Migration Service un accès à l’instance PostgreSQL source et à l’instance Azure Database pour PostgreSQL cible.

    Pour plus d’informations sur la création d’un réseau virtuel dans le portail Azure, consultez l’article Créer un réseau virtuel au moyen du portail Azure.

  6. Sélectionnez un niveau tarifaire. Pour cette migration en ligne, sélectionnez le niveau tarifaire Premium : 4vCores.

    Capture d’écran de la configuration des paramètres d’instance Azure Database Migration Service.

  7. Sélectionnez Créer pour créer le service.

Créer un projet de migration

Une fois le service créé, recherchez-le dans le portail Azure, ouvrez-le, puis créez un projet de migration.

  1. Dans le portail Azure, sélectionnez Tous les services, recherchez Azure Database Migration Service, puis sélectionnez Azure Database Migration Services.

    Capture d’écran de la localisation de toutes les instances d’Azure Database Migration Service.

  2. Dans l’écran Azure Database Migration Services, recherchez le nom de l’instance Azure Database Migration Service que vous avez créée et sélectionnez l’instance, puis + Nouveau projet de migration.

  3. Dans l’écran Nouveau projet de migration, spécifiez un nom pour le projet. Dans la zone de texte Type de serveur source, sélectionnez AWS RDS pour PostgreSQL, puis dans la zone de texte Type de serveur cible, sélectionnez Azure Database pour PostgreSQL.

  4. Dans la section Choisir un type d’activité, sélectionnez Migration de données en ligne.

    Important

    Sélectionnez Migration de données en ligne. Les migrations hors connexion ne sont pas prises en charge dans ce scénario.

    Capture d’écran de création d’un projet Azure Database Migration Service.

    Une autre possibilité consiste à choisir Créer un projet uniquement pour créer le projet de migration à ce stade et exécuter la migration ultérieurement.

  5. Sélectionnez Enregistrer.

  6. Sélectionnez Créer et exécuter une activité pour créer le projet et exécuter l’activité de migration.

    Notez les conditions préalables requises pour configurer la migration en ligne dans le volet de création de projet.

Spécifier les détails de la source

Dans l’écran Ajouter les détails de la source, spécifiez les détails de connexion de l’instance PostgreSQL source.

Capture d’écran de Détails source.

Spécifier les détails de la cible

  1. Sélectionnez Enregistrer, puis, dans l’écran Détails de la cible, spécifiez les détails de connexion pour le serveur Azure Database pour PostgreSQL cible qui est préprovisionné et dont le schéma DVD Rentals est déployé à l’aide de pg_dump.

    Capture d’écran des détails de la cible.

  2. Sélectionnez Enregistrer, puis dans l’écran Mapper aux bases de données cibles, mappez les bases de données source et cible pour la migration.

    Si la base de données cible porte le même nom que la base de données source, Azure Database Migration Service sélectionne la base de données cible par défaut.

    Capture d’écran montrant le mappage aux bases de données cibles.

  3. Sélectionnez Enregistrer, dans l’écran Récapitulatif de la migration pour la zone de texte Nom de l’activité, spécifiez un nom pour l’activité de migration, puis examinez le récapitulatif pour vous assurer que les détails de la source et de la cible correspondent à ceux que vous avez spécifiés précédemment.

    Capture d’écran du récapitulatif de la migration.

Exécuter la migration

Sélectionnez Exécuter la migration.

La fenêtre d’activité de migration s’affiche, et le champ État de l’activité présente la valeur Initialisation en cours.

Surveiller la migration

  1. Dans l’écran d’activité de migration, sélectionnez Actualiser pour mettre à jour l’affichage jusqu’à ce que le champ État de la migration prenne la valeur En cours d’exécution.

    Capture d’écran de l’état de l’activité : en cours d’exécution.

  2. Sous NOM DE LA BASE DE DONNÉES, sélectionnez une base de données spécifique pour obtenir l’état de migration des opérations Full data load (Charge complète des données) et Incremental data sync (Synchronisation incrémentielle des données).

    L’opération Full data load (Charge complète des données) affiche l’état initial de migration de la charge, tandis que l’opération Incremental data sync (Synchronisation incrémentielle des données) indique l’état de capture des changements de données (CDC).

    Capture de l’écran d’inventaire – charge complète des données.

    Capture de l’écran d’inventaire de synchronisation incrémentielle des données.

Effectuer le basculement de la migration

Une fois le chargement complet initial effectué, les bases de données sont marquées de la mention Ready to Cutover (Prêt pour le basculement).

  1. Lorsque vous êtes prêt à effectuer la migration de base de données, sélectionnez Démarrer le basculement.

  2. Attendez que le compteur Modifications en attente affiche 0 pour vous assurer que toutes les transactions entrantes dans la base de données source sont arrêtées, activez la case à cocher Confirmer, puis sélectionnez Appliquer.

    Capture d’écran de l’écran de basculement terminé.

  3. Lorsque l’état de migration de la base de données est Terminé, connectez vos applications à la nouvelle base de données Azure Database pour PostgreSQL cible.

Votre migration en ligne d’une instance locale de Services Bureau à distance PostgreSQL vers Azure Database pour PostgreSQL est maintenant terminée.