Partager via


Déplacer Azure Database pour PostgreSQL vers une autre région

Cet article décrit les conseils de relocalisation pour Azure Database pour PostgreSQL (serveur unique et serveurs flexibles) dans les zones géographiques où les paires de régions ne sont pas disponibles pour la réplication et la géorestauration.

Pour savoir comment relocaliser Azure Cosmos DB for PostgreSQL (anciennement appelé Azure Database pour PostgreSQL – Hyperscale (Citus)), consultez Réplicas en lecture dans Azure Cosmos DB pour PostgreSQL.

Pour obtenir une vue d’ensemble des paires de régions prises en charge par la réplication native, consultez Réplication interrégion.

Prérequis

Les conditions préalables s’appliquent uniquement au redéploiement avec données. Pour relocaliser votre base de données sans données, vous pouvez passer à la section Préparation.

  • Pour déplacer PostgreSQL avec données d’une région à une autre, vous devez disposer d’une ressource de calcul supplémentaire pour exécuter les outils de sauvegarde et de restauration. Les exemples de ce guide utilisent une machine virtuelle Azure exécutant Ubuntu 20.04 LTS. Les ressources de calcul doivent :
    • Disposer d’un accès réseau à la fois au serveur source et au serveur cible, soit sur un réseau privé, soit par inclusion dans les règles de pare-feu.
    • Se trouver dans la région source ou cible.
    • Utiliser les Performances réseau accélérées (le cas échéant).
    • Le contenu de la base de données n’est enregistré dans aucun stockage intermédiaire ; la sortie de l’outil de sauvegarde logique est envoyée directement au serveur cible.
  • Selon la conception de votre instance Azure Database pour PostgreSQL, les ressources dépendantes suivantes peuvent être déployées et configurées dans la région cible avant la relocalisation :

Temps d’arrêt

Pour comprendre les temps d’arrêt possibles impliqués, consultez Cloud Adoption Framework pour Azure : sélectionnez une méthode de relocalisation.

Préparer

Pour commencer, exportez un modèle Resource Manager. Ce modèle contient des paramètres décrivant votre espace de noms Automation.

  1. Connectez-vous au portail Azure.

  2. Sélectionnez Toutes les ressources, puis sélectionnez votre ressource Automation.

  3. Sélectionnez Exporter le modèle.

  4. Choisissez Télécharger dans le panneau Exporter le modèle.

  5. Localisez le fichier .zip que vous avez téléchargé à partir du portail, puis décompressez-le dans le dossier de votre choix.

    Ce fichier zip contient les fichiers .json qui incluent le modèle et des scripts pour le déployer.

Redéploiement sans données

  1. Ajustez les paramètres de modèle exportés pour qu’ils correspondent à la région de destination.

Important

Le serveur cible ne doit pas porter le même nom que le serveur source. Vous devez reconfigurer les clients pour qu’ils pointent vers le nouveau serveur.

  1. Redéployez le modèle dans la nouvelle région. Pour obtenir un exemple d’utilisation d’un modèle ARM pour créer une instance Azure Database pour PostgreSQL, consultez Démarrage rapide : Utiliser un modèle ARM pour créer une instance d’Azure Database pour PostgreSQL – Serveur flexible.

Redéploiement avec données

Le redéploiement avec la migration de données pour Azure Database pour PostgreSQL est basé sur la sauvegarde et la restauration logiques et nécessite des outils natifs. Par conséquent, vous pouvez vous attendre à un temps d’arrêt notable lors de la restauration.

Conseil

Vous pouvez utiliser le Portail Azure pour relocaliser une Azure Database pour PostgreSQL – Serveur flexible. Pour savoir comment répliquer un serveur unique, consultez Déplacer une Azure Database pour PostgreSQL – Serveur flexible vers une autre région à l’aide du Portail Azure.

  1. Ajustez les paramètres de modèle exportés pour qu’ils correspondent à la région de destination.

Important

Le nom du serveur cible doit être différent du nom du serveur source. Vous devez reconfigurer les clients pour qu’ils pointent vers le nouveau serveur.

  1. Redéployez le modèle dans la nouvelle région. Pour obtenir un exemple d’utilisation d’un modèle ARM pour créer une instance Azure Database pour PostgreSQL, consultez Démarrage rapide : Utiliser un modèle ARM pour créer une instance d’Azure Database pour PostgreSQL – Serveur flexible.

  2. Sur la ressource de calcul approvisionnée pour la migration, installez les outils clients PostgreSQL pour la version de PostgreSQL à migrer. L’exemple suivant utilise PostgreSQL version 13 sur une machine virtuelle Azure qui exécute Ubuntu 20.04 LTS :

      sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
      wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
      sudo apt-get update
      sudo apt-get install -y postgresql-client-13
    

    Pour plus d’informations sur l’installation des composants PostgreSQL sur Ubuntu, reportez-vous à Téléchargements Linux (Ubuntu).

    Pour les autres plateformes, accédez à Téléchargements PostgreSQL.

  3. (Facultatif) Si vous avez créé des rôles supplémentaires dans le serveur source, créez-les dans le serveur cible. Pour récupérer la liste des rôles existants, utilisez la requête suivante :

    select *
    from pg_catalog.pg_roles
    where rolename not like 'pg_%' and rolename not in ('azuresu', 'azure_pg_admin', 'replication')
    order by rolename;
    
  4. Pour effectuer la migration de chaque base de données, procédez comme suit :

    1. Arrêtez toutes les activités de base de données sur le serveur source.
    2. Remplacez les informations d’identification, le serveur source, le serveur cible et le nom de la base de données dans le script suivant :
        export USER=admin_username
        export PGPASSWORD=admin_password
        export SOURCE=pgsql-arpp-source.postgres.database.azure.com
        export TARGET=pgsql-arpp-target.postgres.database.azure.com
        export DATABASE=database_name
        pg_dump -h $SOURCE -U $USER --create --exclude-schema=pg_catalog $DATABASE | psql -h $TARGET -U $USER postgres
    
    1. Pour effectuer la migration de la base de données, exécutez le script.

    2. Configurez les clients pour qu’ils pointent vers le serveur cible.

    3. Effectuez des tests fonctionnels sur les applications.

      1. Vérifiez que l’indicateur ignoreMissingVnetServiceEndpoint est défini sur False, de sorte que l’IaC (Infrastructure as Code) ne parvient pas à déployer la base de données lorsque le point de terminaison de service n’est pas configuré dans la région cible.