Tutoriel : Migrer/Mettre à niveau Azure Database pour PostgreSQL – Serveur unique vers Azure Database pour PostgreSQL – Serveur unique en ligne à l’aide de DMS via le Portail Azure

Vous pouvez utiliser Azure Database Migration Service pour migrer les bases de données d’une instance Azure Database pour PostgreSQL – Serveur unique vers une version identique ou différente d’une instance Azure Database pour PostgreSQL – Serveur unique ou vers Azure Database pour PostgreSQL – Serveur flexible moyennant un temps d’arrêt minimal. Dans ce tutoriel, vous allez migrer l’exemple de base de données DVD Rental à partir d’une instance Azure Database pour PostgreSQL v10 vers Azure Database pour PostgreSQL – Serveur unique à 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 dans Azure Database Migration Service.
  • Exécuter la migration.
  • Surveiller la migration.
  • Effectuer le basculement de la migration.

Notes

L’utilisation d’Azure Database Migration Service pour effectuer une migration en ligne nécessite la création d’une instance basée sur le niveau tarifaire Premium. 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 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.

Important

La migration à partir d’Azure Database pour PostgreSQL est prise en charge pour PostgreSQL version 9.x et versions ultérieures. Vous pouvez également utiliser ce didacticiel pour migrer d’une instance Azure Database pour PostgreSQL à une autre ou vers une instance Hyperscale (Citus). Notez que la migration à partir de PostgreSQL 9.5 et 9.6 nécessite des privilèges de réplication logique supplémentaires dans l’instance source.

Prérequis

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

  • Vérifier État des scénarios de migration pris en charge par Azure Database Migration Service pour connaître les combinaisons de migration et de versions prises en charge.

  • Une instance Azure Database pour PostgreSQL version 10 et ultérieure existante avec la base de données DVD Rental.

    Notez également que la version cible d'Azure Database pour PostgreSQL doit être égale ou ultérieure à la version PostgreSQL locale. Par exemple, PostgreSQL 10 peut migrer vers Azure Database pour PostgreSQL 10 ou 11, et non vers Azure Database pour PostgreSQL 9.6.

  • Créer un serveur dans Azure Database pour PostgreSQL ou créer un serveur Azure Database pour PostgreSQL – Hyperscale (Citus) comme serveur de base de données cible pour y migrer les données.

  • Créer un réseau virtuel Microsoft Azure pour Azure Database Migration Service à l’aide du modèle de déploiement Azure Resource Manager. 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 (NSG) de votre réseau virtuel ne bloquent pas le port de sortie 443 de ServiceTag pour ServiceBus, Storage 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.

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

  • Créez une règle de pare-feu de niveau serveur pour la cible 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.

  • Activez la réplication logique dans la source Azure Database pour PostgreSQL.

  • Définissez les paramètres de serveur suivants dans l’instance Azure Database pour PostgreSQL utilisée comme source :

    • max_replication_slots = [nombre d’emplacements], valeur recommandée dix emplacements
    • max_wal_senders = [nombre de tâches simultanées] - le paramètre max_wal_senders définit le nombre de tâches simultanées qui peuvent s’exécuter, paramètre recommandé : 10 tâches

Notes

Les paramètres de serveur ci-dessus sont statiques et nécessitent un redémarrage de votre instance Azure Database pour PostgreSQL pour qu’ils prennent effet. Pour plus d’informations sur le basculement des paramètres du serveur, consultez Configurer les paramètres Azure Database pour PostgreSQL.

Important

Toutes les tables de votre base de données existante nécessitent une clé primaire pour garantir que les modifications peuvent être synchronisées avec la base de données cible.

Migrer l’exemple de schéma

Pour compléter tous les objets de base de données tels que les schémas de table, les index et les procédures stockées, nous devons extraire le schéma à partir de la base de données source et l’appliquer à la base de données.

  1. Utilisez la commande pg_dump -s afin de créer un fichier de vidage de schéma pour une base de données.

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

    Par exemple, pour créer un fichier de vidage de schéma pour la base de données dvdrental :

    pg_dump -O -h mypgserver-source.postgres.database.azure.com -U pguser@mypgserver-source -d dvdrental -s -x > dvdrentalSchema.sql
    

    Pour plus d’informations sur l’utilisation de l’utilitaire pg_dump, consultez les exemples du tutoriel pg-dump.

  2. Créez une base de données vide dans votre environnement cible, c’est-à-dire Azure Database pour PostgreSQL.

    Pour plus d’informations sur la création et la connexion d’une base de données, consultez l’article Créer un serveur Azure Database pour PostgreSQL dans le Portail Azure ou Créer un serveur Azure Database pour PostgreSQL – Hyperscale (Citus) dans le Portail Azure.

    Notes

    Une instance Azure Database pour PostgreSQL – Hyperscale (Citus) dispose uniquement d’une base de données unique : citus.

  3. Importez le schéma dans la base de données cible que vous avez créée en restaurant le fichier de vidage du schéma.

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

    Par exemple :

    psql -h mypgserver-source.postgres.database.azure.com  -U pguser@mypgserver-source -d dvdrental citus < 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.

    Afficher les 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.

    Afficher les fournisseurs de ressources

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

    S’inscrire auprès du fournisseur de ressources

Créer une instance de service DMS

  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.

    Place de marché Azure

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

    Créer une instance Azure Database Migration Service

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

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

    Le réseau virtuel fournit à Azure Database Migration Service un accès au serveur 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.

  5. Sélectionnez un niveau tarifaire.

    Pour plus d’informations sur les coûts et les niveaux de tarification, consultez la page de tarification.

    Configurer des paramètres d’instance Azure Database Migration Service

  6. Sélectionnez Vérifier + créer pour créer le service.

    La création du service se terminera en 10 à 15 minutes environ.

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.

    Localiser toutes les instances 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 PostgreSQL et, dans la zone de texte Type de serveur cible, sélectionnez Azure Database pour PostgreSQL.

    Notes

    Choisissez PostgreSQL dans Type de serveur source même si le serveur source est une instance Azure Database pour PostgreSQL.

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

    Créer un projet Azure Database Migration Service

    Notes

    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, notez les conditions requises pour pouvoir utiliser Azure Database Migration Service pour migrer des données, puis sélectionnez Créer et exécuter une activité.

Spécifier les détails de la source

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

    Écran Ajouter les détails de la source

    Notes

    Vous pouvez trouver des détails tels que « Nom du serveur », « Port du serveur », « Nom de la base de données », etc., dans le portail Azure Database pour PostgreSQL.

  2. Sélectionnez Enregistrer.

Spécifier les détails de la cible

  1. Dans l’écran Détails de la cible, spécifiez les détails de connexion pour le serveur Hyperscale (Citus) cible, qui est l’instance préapprovisionnée d’Hyperscale (Citus) sur laquelle le schéma DVD Rentals a été déployé à l’aide de pg_dump.

    Écran Détails de la cible

    Notes

    Vous pouvez migrer d’une instance Azure Database pour PostgreSQL vers une autre instance de serveur unique Azure Database pour PostgreSQL ou vers un serveur Hyperscale (Citus).

  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.

    Écran Mapper aux bases de données cibles

  3. Sélectionnez Enregistrer puis, dans l’écran Paramètres de migration, acceptez les valeurs par défaut.

    Écran Paramètres de migration

  4. 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.

    Écran 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 l’état de l’activité doit se mettre à jour pour indiquer Sauvegarde en cours. Vous pouvez rencontrer l’erreur suivante lors de la mise à niveau à partir d’Azure Database pour PostgreSQL 9.5 ou 9.6 :

Un scénario a signalé une erreur inconnue. 28000 : aucune entrée dans pg_hba.conf pour la connexion de réplication de l’hôte « 40.121.141.121 », utilisateur « sr »

Cela est dû au fait que PostgreSQL ne dispose pas des privilèges exigés pour créer les artefacts de réplication logique nécessaires. Pour activer les privilèges exigés, vous pouvez effectuer les opérations suivantes :

  1. Ouvrez les paramètres « Sécurité de la connexion » du serveur source Azure Database pour PostgreSQL que vous souhaitez migrer ou mettre à niveau.
  2. Ajoutez une nouvelle règle de pare-feu avec un nom se terminant par « _replrule », puis ajoutez l’adresse IP du message d’erreur aux champs Adresse IP de début et Adresse IP de fin. Pour l’exemple d’erreur ci-dessus -

Nom de la règle de pare-feu = sr_replrule; Adresse IP de début = 40.121.141.121; Adresse IP de fin = 40.121.141.121

  1. Cliquez sur Enregistrer, puis attendez que la modification soit terminée.
  2. Retentez l’activité DMS.

Surveiller la migration

  1. Dans l’écran d’activité de migration, sélectionnez Actualiser pour mettre à jour l’affichage jusqu’à voir l’état de la migration s’afficher comme Terminé.

    Processus Surveiller la migration

  2. Lorsque la migration est terminée, 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).

    Notes

    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).

    Détails de la charge complète des données

    Détails de la synchronisation incrémentielle des données

Effectuer le basculement de la migration

Une fois le chargement complet initial effectué, les bases de données identifiées par le libellé 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.

    Écran de basculement terminé

  3. Lorsque l’état de migration de la base de données indique Terminé, recréez des séquences (le cas échéant) et connectez vos applications à la nouvelle instance cible d’Azure Database pour PostgreSQL.

Notes

Azure Database Migration Service permet d’effectuer des mises à niveau de version majeures avec un temps d’arrêt réduit dans Azure Database pour PostgreSQL – Serveur unique. Vous devez tout d’abord configurer une base de données cible avec la version de PostgreSQL supérieure, les paramètres réseau et les paramètres souhaités. Ensuite, vous pouvez lancer la migration vers les bases de données cibles à l’aide de la procédure décrite ci-dessus. Une fois le basculement vers le serveur de base de données cible effectué, vous pouvez mettre à jour votre chaîne de connexion d’application pour qu’elle pointe vers le serveur de base de données cible.

Étapes suivantes