Share via


Tutoriel : Migrer d’Azure Database pour PostgreSQL - Serveur unique vers Azure Database pour PostgreSQL - Serveur flexible avec le service de migration

S’APPLIQUE À : Azure Database pour PostgreSQL – Serveur flexible

Dans le portail Azure, vous pouvez migrer une instance d’Azure Database pour PostgreSQL - Serveur unique vers Azure Database pour PostgreSQL - Serveur flexible. Dans ce tutoriel, nous effectuons la migration d’un exemple de base de données d’un serveur unique Azure Database pour PostgreSQL vers un serveur flexible PostgreSQL à l’aide du portail Azure.

  • Configurez votre instance de serveur flexible Azure Database pour PostgreSQL
  • Configurer la tâche de migration
  • Surveiller la migration
  • Annuler la migration
  • Après la migration

Vous pouvez faire la migration avec le portail Azure.

Prérequis (hors connexion)

Avant de commencer votre migration avec le service de migration dans Azure Database pour PostgreSQL, vous devez satisfaire les conditions préalables suivantes, qui s’appliquent aux scénarios de migration hors connexion.

Vérifier la version source

La version de PostgreSQL source doit être >= 9.5. Si la version de PostgreSQL source est inférieure à 9.5, mettez à niveau la version de PostgreSQL source vers la version 9.5 ou ultérieure avant la migration.

Configuration cible :

  • Azure Database pour PostgreSQL doit être configuré dans Azure avant la migration.

  • La référence SKU choisie pour Azure Database pour PostgreSQL doit correspondre aux spécifications de la base de données source afin de garantir la compatibilité et des performances adéquates.

  • Pour obtenir des instructions détaillées sur la création d’une Azure Database pour PostgreSQL, reportez-vous au lien suivant : Démarrage rapide : Créer un serveur.

Configuration du réseau

Une configuration réseau appropriée est essentielle pour garantir une connectivité réussie entre la source et la cible pendant la migration. Voici un guide pour vous aider à établir la connexion réseau dans différents scénarios :

Configuration réseau requise pour la migration :

  • Tunneling ExpressRoute/VPN IPsec/VPN : lors de la connexion de votre source locale/AWS à Azure, vous devrez peut-être configurer un tunneling ExpressRoute, VPN IPsec ou VPN pour faciliter le transfert de données sécurisé.

  • Appairage de réseaux virtuels : établissez un appairage de réseaux virtuels entre les deux réseaux virtuels distincts pour activer la connectivité réseau directe, condition préalable à la migration entre la machine virtuelle Azure et Azure Database pour PostgreSQL.

Scénarios de connectivité :

Le tableau suivant peut vous aider à configurer le réseau entre la source et la cible.

Source Cible Conseils de connectivité
Public Public Aucune autre action n’est requise si la source est mise en liste verte dans les règles de pare-feu de la cible.
Privé Public Cette configuration n’est pas prise en charge ; utilisez pg_dump/pg_restore pour le transfert de données.
Public Privée Aucune autre action n’est requise si la source est mise en liste verte dans les règles de pare-feu de la cible.
Privée Privée Établissez un tunneling ExpressRoute, VPN IPsec ou VPN, ou un appairage de réseaux virtuels entre la source et la cible.
Privée Point de terminaison privé Cette configuration n’est pas prise en charge ; contactez le support Microsoft.

Autres considérations relatives à la mise en réseau :

  • Configuration pg_hba.conf : pour faciliter la connectivité entre les instances PostgreSQL source et cible, il est essentiel de vérifier et de modifier potentiellement le fichier pg_hba.conf. Ce fichier inclut l’authentification du client et doit être configuré pour permettre à la cible PostgreSQL de se connecter à la source. Généralement, l’instance source PostgreSQL doit être redémarrée pour que les modifications apportées au fichier pg_hba.conf prennent effet.

Remarque

Le fichier pg_hba.conf se trouve dans le répertoire de données de l’installation PostgreSQL. Ce fichier doit être vérifié et configuré si la base de données source est un serveur PostgreSQL local ou un serveur PostgreSQL hébergé sur une machine virtuelle Azure. Pour les instances PostgreSQL sur AWS RDS ou des services gérés similaires, le fichier pg_hba.conf n’est pas directement accessible ou applicable. Au lieu de cela, l’accès est contrôlé grâce aux configurations d’accès réseau et de sécurité fournies par le service.

Pour plus d’informations sur la configuration réseau, consultez le Guide réseau pour le service de migration dans Azure Database pour PostgreSQL – Serveur flexible.

Extensions

Les extensions sont des fonctionnalités supplémentaires qui peuvent être ajoutées à PostgreSQL pour en améliorer les performances. Les extensions sont prises en charge dans Azure Database pour PostgreSQL, mais doivent être activées manuellement. Pour activer les extensions, procédez comme suit :

  • Utilisez la commande select dans la source pour lister toutes les extensions utilisées : select extname,extversion from pg_extension;.

  • Recherchez le paramètre de serveur azure.extensions dans la page des paramètres du serveur de votre Azure Database pour PostgreSQL. Activez les extensions trouvées dans la source dans PostgreSQL.

  • Enregistrez les modifications apportées aux paramètres et, si nécessaire, redémarrez Azure Database pour PostgreSQL pour appliquer la nouvelle configuration.

    Capture d'écran des extensions.

  • Vérifiez si la liste contient l’une des extensions suivantes :

    • PG_CRON
    • PG_HINT_PLAN
    • PG_PARTMAN_BGW
    • PG_PREWARM
    • PG_STAT_STATEMENTS
    • PG_AUDIT
    • PGLOGICAL
    • WAL2JSON

Si tel est le cas, accédez à la page paramètres du serveur et recherchez le paramètre shared_preload_libraries. Ce paramètre indique l’ensemble des bibliothèques d’extensions qui sont préchargées au redémarrage du serveur.

Paramètres de serveur

Ces paramètres ne sont pas automatiquement migrés vers l’environnement cible et doivent être configurés manuellement.

  • Faites correspondre les valeurs des paramètres du serveur de la base de données PostgreSQL source à Azure Database pour PostgreSQL en accédant à la section « Paramètres du serveur » dans le Portail Azure et en mettant à jour manuellement les valeurs en conséquence.

  • Enregistrez les modifications apportées aux paramètres et, si nécessaire, redémarrez Azure Database pour PostgreSQL pour appliquer la nouvelle configuration.

Désactiver les réplicas de haute disponibilité (fiabilité) et de lecture dans la cible

  • Il est essentiel de désactiver les réplicas de haute disponibilité (fiabilité) et de lecture dans l’environnement cible. Ces fonctionnalités doivent uniquement être activées une fois la migration terminée.

  • En procédant ainsi, vous pouvez garantir un processus de migration fluide sans les variables ajoutées introduites par les réplicas de haute disponibilité et de lecture. Une fois la migration terminée et la base de données stable, vous pouvez activer ces fonctionnalités pour améliorer la disponibilité et la scalabilité de votre environnement de base de données dans Azure.

Configurez votre instance de serveur flexible Azure Database pour PostgreSQL

  • Créez le serveur flexible cible. Pour obtenir les étapes détaillées, consultez le guide de démarrage rapide Créer un serveur flexible Azure Database pour PostgreSQL avec le portail.

  • Ajoutez à la liste d’autorisation les extensions dont les bibliothèques doivent être chargées au démarrage du serveur. Les extensions doivent impérativement être dans la liste d’autorisation avant le lancement d’une migration.

  • Vérifiez s’il y a une asymétrie de la distribution des données dans les tables de base de données, par exemple, si la plupart des données sont présentes dans une seule ou quelques tables. En cas d’asymétrie, la migration peut être plus lente que prévu. Dans ce cas, la migration peut être accélérée en migrant la grande table en parallèle.

Configurer la tâche de migration

Le service de migration inclut une expérience simple basée sur un Assistant sur le Portail Azure. Voici comment procéder :

  1. Ouvrez votre navigateur web et accédez au portail. Pour vous connecter, entrez vos informations d’identification. Il s’ouvre par défaut sur le tableau de bord des services.

  2. Accédez à votre cible Azure Database pour PostgreSQL - Serveur flexible.

  3. Dans l’onglet Vue d’ensemble du serveur flexible, dans le menu de gauche, faites défiler vers le bas jusqu’à Migration et sélectionnez cette option.

    Capture d’écran de la page de présentation du serveur flexible.

  4. Sélectionnez le bouton Créer pour démarrer une migration de serveur unique vers un serveur flexible. S’il s’agit de la première fois que vous utilisez le service de migration, une grille vide s’affiche pour vous inviter à commencer votre première migration.

    Capture d’écran de l’onglet de migration dans le serveur flexible.

    Si vous avez déjà créé des migrations vers votre serveur flexible cible, la grille contient des informations sur les migrations qui ont été tentées vers cette cible à partir du serveur unique.

  5. Sélectionnez le bouton Migrer à partir d’un serveur unique. Vous allez utiliser une série d’onglets basée sur un Assistant pour créer une migration vers cette cible de serveur flexible à partir de n’importe quelle source de serveur unique.

Vous pouvez également lancer le processus de migration à partir du serveur unique Azure Database pour PostgreSQL.

  1. Ouvrez votre navigateur web et accédez au portail. Pour vous connecter, vous devez entrer vos informations d’identification. Il s’ouvre par défaut sur le tableau de bord des services.

  2. Lorsque vous sélectionnez le serveur unique, vous pouvez observer une bannière liée à la migration dans l’onglet Vue d’ensemble. Sélectionnez Migrer maintenant pour commencer.

    Capture d’écran pour initier la migration à partir de l’onglet serveur unique.

  3. Vous serez redirigé vers une page avec deux options. Si vous avez déjà créé un serveur flexible et que vous voulez l’utiliser comme cible, choisissez Sélectionner existant, puis sélectionnez les détails correspondants de l’abonnement, du groupe de ressources et du nom de serveur. Une fois les sélections effectuées, sélectionnez Accéder à l’Assistant Migration et passez aux instructions de la section Onglet Configuration de cette page.

    Capture d’écran pour choisir l’option de serveur flexible existante.

  4. Si vous choisissez de créer un serveur flexible, sélectionnez Créer, puis Accéder à l’Assistant Création. Cette action vous guide tout au long du processus de création du serveur flexible et déploie le serveur flexible.

    Capture d’écran pour choisir l’option de nouveau serveur flexible.

Après avoir déployé le serveur flexible, suivez les étapes 3 à 5 de Configurer la tâche de migration.

Onglet Configuration

L’onglet Configuration apparaît en premier. Si vous ne l’avez pas fait, ajoutez à la liste d’autorisation les extensions nécessaires, comme indiqué dans Les extensions doivent impérativement être dans la liste d’autorisation avant le lancement d’une migration.

Capture d’écran des détails appartenant à l’onglet Configuration pour la migration hors connexion.

Le nom de la migration est l’identificateur unique de chaque migration vers cette cible de serveur flexible. Ce champ accepte uniquement les caractères alphanumériques et n’accepte aucun caractère spécial à l’exception du trait d’union (-). Le nom ne peut pas commencer par un trait d’union et doit être unique pour un serveur cible. Deux migrations vers la même cible de serveur flexible ne peuvent pas avoir le même nom.

Le type de serveur source indique la source. Dans ce cas, il s'agit d’Azure Database pour PostgreSQL - Serveur unique

L’option de migration vous permet d’effectuer des validations avant de déclencher une migration. Vous pouvez choisir l’une des options suivantes.

  • Valider : vérifie la préparation de votre serveur et de votre base de données pour la migration vers la cible.
  • Migrer : ignore les validations et démarre les migrations.
  • Valider et migrer : effectue la validation avant de déclencher une migration. La migration est uniquement déclenchée s’il n’y a pas d’échecs de validation.

La bonne pratique est de choisir l’option Valider ou Valider et migrer pour effectuer des validations de prémigration avant d’exécuter la migration.

Si la migration en ligne est sélectionnée,vous devez activer la réplication logique dans le serveur unique source. Si elle n’est pas activée, le service de migration active automatiquement la réplication logique sur le serveur unique source. Vous pouvez également configurer manuellement la réplication sous l’onglet Réplication dans le volet côté serveur unique en définissant le niveau de prise en charge de la réplication Azure sur Logique. Les deux approches redémarrent le serveur unique source.

Sélectionnez le bouton Suivant : Se connecter à la source.

Onglet Source

L’onglet Source vous invite à fournir les détails du serveur unique, qui est la source des bases de données.

Une fois que vous avez effectué les sélections Abonnement et Groupe de ressources, la liste déroulante des noms de serveur affiche le serveur unique sous ce groupe de ressources dans plusieurs régions. Sélectionnez la source à partir de laquelle vous souhaitez migrer les bases de données. Vous pouvez migrer des bases de données d’un serveur unique vers un serveur flexible cible dans la même région. Les migrations entre régions sont activées uniquement pour les serveurs en Inde, en Chine et aux Émirats arabes unis.

Une fois que vous avez choisi la source du serveur unique, les zones Emplacement, Version PostgreSQL et Nom de connexion de l’administrateur du serveur sont renseignées automatiquement. Le nom de connexion de l’administrateur du serveur est le nom d’utilisateur administrateur utilisé pour créer le serveur unique. Dans la zone Mot de passe, entrez le mot de passe de l’utilisateur administrateur. Le service de migration migre les bases de données du serveur unique en tant qu’utilisateur administrateur.

Après avoir renseigné tous les champs, sélectionnez le lien Se connecter à la source. Cette opération confirme que les détails du serveur source entrés sont corrects et que le serveur source est accessible.

Capture d’écran des détails du serveur de base de données source​.

Cliquez sur le bouton Suivant : Sélectionner la cible de migration pour continuer.

Onglet cible

L'onglet Cible affiche les métadonnées de la cible du Serveur flexible, telles que le nom de l'abonnement, le groupe de ressources, le nom du serveur, l'emplacement et la version de PostgreSQL.

Capture d’écran des détails du serveur de base de données cible​.

Pour le Nom de connexion de l’administrateur du serveur, l’onglet affiche le nom d’utilisateur administrateur utilisé pour créer le serveur flexible cible. Entrez le mot de passe correspondant pour l’utilisateur administrateur. Une fois le mot de passe entré, sélectionnez le lien Se connecter à la cible. Cette opération permet de confirmer que les détails du serveur cible saisis sont corrects et que ce dernier est accessible.

Sélectionnez le bouton Suivant pour sélectionner les bases de données à migrer.

Onglet Sélectionner des bases de données pour la migration

Sous cet onglet, il existe une liste de bases de données utilisateur à l’intérieur du serveur unique. Vous pouvez sélectionner et migrer jusqu’à huit bases de données en une seule tentative de migration. S’il existe plus de huit bases de données utilisateur, le processus de migration est répété entre les serveurs source et cible pour l’ensemble de bases de données suivant. Par défaut, les bases de données sélectionnées portant le même nom sur la cible sont remplacées.

Capture d’écran des bases de données à migrer.

Sélectionnez le bouton Suivant pour vérifier les détails.

Résumé

L'onglet Résumé résume tous les détails de la création de la validation ou de la migration. Passez en revue les détails et sélectionnez le bouton Démarrer.

Capture d’écran des détails à examiner pour la migration.

Portail Monitorer la migration

Une fois que vous avez sélectionné le bouton Démarrer, une notification s’affiche quelques secondes plus tard pour indiquer que la validation ou la création de la migration est réussie. Vous êtes automatiquement redirigé vers la page Migration du serveur flexible. Il s’agit d’une nouvelle entrée pour la validation ou la migration récemment créée.

Capture d’écran des détails de la migration récemment créée.

La grille qui affiche les migrations comporte les colonnes suivantes : Nom, État, Type de migration, Mode de migration, Serveur source, Type de serveur source, Bases de données, Heure de début et Durée. Les entrées sont affichées dans l’ordre décroissant de l’heure de début avec l’entrée la plus récente en haut.

Vous pouvez utiliser le bouton d’actualisation pour actualiser l’état de la validation ou de la migration. Vous pouvez également sélectionner le nom de la migration dans la grille pour afficher les détails associés.

Après la validation ou une fois la migration créée, l’état devient InProgress avec le sous-état PerformingPreRequisiteSteps. Le workflow prend 2 à 3 minutes pour configurer l’infrastructure de migration et les connexions réseau.

Voyons comment monitorer les migrations pour chaque option de migration.

Valider

Une fois le sous-état PerformingPreRequisiteSteps terminé, la validation passe au sous-état de Validation en cours où les vérifications sont effectuées sur le serveur source et cible pour évaluer la préparation de la migration.

La validation passe à l’état Réussi si toutes les validations sont dans l’état Réussi ou Avertissement.

Capture d’écran de la grille de validation.

La grille de validation comporte les éléments suivants :

  • Sections Détails de validation pour l’instance et Détails de validation pour les bases de données qui représentent les règles de validation utilisées pour vérifier la préparation de la migration.
  • État de validation : représente le résultat de chaque règle et peut prendre l'une des trois valeurs suivantes
    • Réussi : si aucune erreur n’a été trouvée.
    • Échec : en cas d’erreurs de validation.
    • Avertissement : s’il existe des avertissements de validation.
  • Durée : durée de l'opération de validation.
  • Heure de début et de fin : heure de début et de fin de l'opération de validation au format UTC.

L'État de validation passe à l'état Échec si la validation comporte des erreurs. Sélectionnez la validation Nom de la validation ou Nom de la base de données qui a échoué. Un volet en éventail vous donne alors les détails et l’action corrective à exécuter pour éviter cette erreur.

Capture d’écran de la grille de validation avec l’état d’échec.

Migrer

Quand le sous-état PerformingPreRequisiteSteps est terminé, la migration passe au sous-état Migration des données où le clonage/la copie des bases de données a lieu. La durée de la migration dépend de la taille et de la forme des bases de données que vous migrez. La migration est rapide si les données sont principalement réparties uniformément dans toutes les tables. Les tailles de table inégales prennent un temps relativement plus long.

Lorsque vous sélectionnez n’importe laquelle de ces bases de données en cours de migration, un volet de ramification s’affiche. Il contient tous les chiffres des tables : copiées, mises en file d’attente, copie en cours et erreurs, à l’exception de l’état de migration de la base de données.

Capture d’écran de la grille de migration contenant tous les détails sur les bases de données.

La migration passe à l’état Réussi dès que l’état Migration des données se termine correctement. En cas de problème au niveau de l’état Migration des données, la migration passe à l’état Échec.

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

Une fois la migration passée à l’état Réussi, la migration du schéma et des données de votre serveur unique vers votre serveur flexible cible est terminée. Vous pouvez utiliser le bouton Actualiser sur la page afin de confirmer.

Capture d’écran des migrations terminées.

Valider et migrer

Dans cette option, les validations sont effectuées en premier avant le démarrage de la migration. Dès que le sous-état PerformingPreRequisiteSteps est terminé, le workflow passe au sous-état Validation en cours.

  • Si la validation présente des erreurs, la migration passe à l’état Échec.
  • Si la validation est terminée sans erreur, la migration démarre et le flux de travail passe au sous-état Migration des données.

Vous pouvez consulter les résultats de Validation et migration une fois l'opération terminée.

Capture d’écran montrant l’onglet Validations dans la page de détails.

Annuler la migration dans le portail

Vous pouvez annuler toutes les validations ou migrations en cours. Le workflow doit être dans l’état InProgress pour être annulé. Vous ne pouvez pas annuler une validation ou une migration qui se trouve dans l’état Réussi ou Échec.

L’annulation d’une validation arrête toute activité de validation supplémentaire et la validation passe à l’état Annulé. L’annulation d’une migration arrête l’activité de migration supplémentaire sur votre serveur cible et passe à l’état Annulé. L’action d’annulation restaure toutes les modifications apportées par le service de migration sur votre serveur cible.

Après la migration

Une fois les bases de données terminées, vous devez valider manuellement les données entre la source et la cible et vérifier que tous les objets de la base de données cible sont bien créés.

Après la migration, vous pouvez effectuer les tâches suivantes :

  • Vérifiez les données sur votre serveur flexible et vérifiez qu’il s’agit d’une copie exacte de l’instance source.

  • Après vérification, et si cela est nécessaire, activez l’option haute disponibilité sur votre serveur flexible.

  • Changez la référence SKU du serveur flexible en fonction des besoins d’applications. Cette modification nécessite un redémarrage du serveur de base de données.

  • Si vous modifiez les valeurs par défaut de certains paramètres de serveur sur l’instance source, copiez les valeurs de ces paramètres de serveur dans le serveur flexible.

  • Copiez d’autres paramètres de serveur tels que les étiquettes, les alertes et les règles de pare-feu (le cas échéant) de l’instance source vers le serveur flexible.

  • Apportez des modifications à votre application pour lui faire pointer les chaînes de connexion vers un serveur flexible.

  • Surveillez de près le niveau de performance des bases de données pour déterminer s’il est nécessaire de l’ajuster.