Remarques :

Automatiser la permutation et le basculement pour la base de données PostgreSQL avec Oracle Cloud Infrastructure Full Stack Disaster Recovery

Introduction

Oracle Cloud Infrastructure Full Stack Disaster Recovery (OCI Full Stack DR) orchestre la transition du calcul, de la base de données et des applications entre les régions Oracle Cloud Infrastructure (OCI) du monde entier en un seul clic. Les clients peuvent automatiser les étapes nécessaires pour récupérer un ou plusieurs systèmes d'entreprise sans repenser ou modifier l'architecture de l'infrastructure, des bases de données ou des applications existantes et sans avoir besoin de serveurs de gestion ou de conversion spécialisés.

OCI Full Stack DR est un service hautement flexible. Nous pouvons tirer parti des groupes de plans définis par l'utilisateur dans le plan de récupération après sinistre pour gérer les opérations de récupération après sinistre de bucket OCI Object Storage.

Architecture de déploiement

Architecture d'Object Storage

Remarque : la région principale est Francfort et la région de récupération après sinistre est Londres.

Objectifs

Prérequis

Tâche 1 : installer et configurer PostgreSQL

  1. Pour installer PostgreSQL, connectez-vous à l'hôte à l'aide de votre client SSH favori et exécutez la commande suivante.

    sudo dnf install -y postgresql postgresql-server postgresql-contrib
    sudo /usr/bin/postgresql-setup initdb
    sudo systemctl enable postgresql
    sudo systemctl start postgresql
    
  2. Activez le pare-feu Linux pour recevoir les connexions.

    sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent
    sudo firewall-cmd --reload
    
  3. Modifiez le fichier postgresql.conf (qui se trouve à xxxxx) pour autoriser la connexion et modifiez les paramètres wal comme suit.

    ...
    listen_addresses = '*'
    ...
    wal_level = logical
    wal_log_hints = on
    ...
    
  4. Connectez-vous à la base de données, puis créez l'utilisateur de réplication.

    sudo su postgres
    psql
    
    CREATE ROLE replica_user WITH REPLICATION LOGIN PASSWORD 'YourUserPassword';
    
  5. Ajoutez cet utilisateur au fichier pg_hba.conf (qui se trouve à xxxxx).

    host    all             all             all                    md5
    host    replication     replica_user    <IP Host 1>            md5
    host    replication     replica_user    <IP Host 2>            md5
    
  6. Redémarrez la base de données PostgreSQL pour appliquer les modifications.

    sudo systemctl restart postgresql
    
  7. Répétez ce processus sur le deuxième serveur.

Tâche 2 : répliquer la base de données PostgreSQL

Dans cette tâche, nous allons configurer la réplication de base de données PostgreSQL native.

  1. Connectez-vous à la base de données principale et créez l'emplacement de réplique.

    sudo su postgres
    psql
    
    select pg_create_physical_replication_slot('replica_0');
    
  2. Connectez-vous à la base de données secondaire et exécutez les commandes suivantes pour créer la réplication.

    sudo systemctl stop postgresql
    sudo rm -rv /var/lib/pgsql/data/
    sudo pg_basebackup -d "host=<IP Host 1> port=5432 user=replica_user password=YourUserPassword" -w -X stream -S replica_0 -v -R -W -D /var/lib/pgsql/data/ --no-password
    sudo chown postgres -R /var/lib/pgsql/data/
    sudo systemctl start postgresql
    
  3. Vérifiez que la réplication circule sur la base de données principale.

    select * from pg_stat_replication;
    

    Vous devriez être en mesure de voir une ligne avec le processus de streaming.

Tâche 3 : créer le plan de permutation

Tâche 3.1 : créer et associer des groupes de protection de récupération après sinistre (DRPG)

  1. Dans la région principale (Francfort), cliquez sur le menu Hamburger, accédez à Migration et récupération après sinistre, à Récupération après sinistre, à Groupe de protection de récupération après sinistre et à Créer un groupe de protection de récupération après sinistre.

    Création d'un groupe de protection de récupération après sinistre à Ashburn

  2. Dans la région de secours (Londres), cliquez sur le menu Hamburger, accédez à Migration et récupération après sinistre, à Récupération après sinistre, à Groupe de protection de récupération après sinistre et à Créer un groupe de protection de récupération après sinistre.

    Création d'un groupe de protection de récupération après sinistre à Ashburn

  3. Dans la région principale (Francfort), entrez les informations suivantes et cliquez sur Associer.

    • Rôle : Primary.
    • Région homologue : UK South (London).
    • Groupe de protection de récupération après sinistre homologue : postgresql-lon.

    Associer la base principale et la base de données de secours

Tâche 3.2 : Ajouter des membres au DRPG principal et de secours

  1. Dans le DRPG principal (postgresql-fra), sélectionnez Membres et ajoutez la machine virtuelle de calcul (postgresql01) en tant que membre.

    Ajouter membres primaires

    Remarque : lors de l'ajout du calcul en tant que membre, sélectionnez Instance sans déplacement dans le type d'instance de calcul, car nous disposons d'une configuration actif-passif pour la base de données PostgreSQL.

  2. Dans le DRPG de secours (postgresql-lon), sélectionnez Membres et ajoutez la machine virtuelle de calcul (postgresql02) en tant que membre.

    Ajouter des membres en attente

    Remarque : lors de l'ajout de Compute en tant que membres, sélectionnez Instance sans déplacement dans le type d'instance de calcul, car nous disposons d'une configuration actif-passif pour la base de données PostgreSQL.

Tâche 3.3 : créer un plan de permutation dans le DRPG de secours (Londres)

Plan de permutation : type de plan de récupération après sinistre qui effectue une transition planifiée des services du DRPG principal vers le DRPG de secours.

  1. Créez un plan de permutation dans le DRPG de secours postgresql-lon.

  2. Sélectionnez Plans et cliquez sur Créer un plan.

  3. Entrez postgresql-switchover-frankfurt-london dans le champ Nom et sélectionnez Switchover (planned) dans le champ Type de plan.

  4. Cliquez sur Créer.

Plan de permutation

Remarque : veillez à créer le plan de permutation à partir du DRPG de secours (Londres).

Tâche 3.4 : Personnaliser le plan de permutation avec différents groupes de plans définis par l'utilisateur

Nous avons ajouté Compute (instance non mobile) en tant que membres dans les deux groupes de protection de récupération après sinistre. Nous devons personnaliser le plan de permutation avec d'autres groupes de plans définis par l'utilisateur. Nous devons également créer les scripts bash suivants et les télécharger vers OCI Object Storage afin de pouvoir les appeler lors de la permutation.

Remarque : ces scripts doivent être téléchargés vers le bucket dans la région de Londres.

Groupes de plans

Un workflow standard pour la permutation de récupération après sinistre est le suivant :

  1. Arrêter la base de données PostgreSQL dans la région Francfort : le groupe de plans comporte des étapes permettant d'arrêter la base de données PostgreSQL dans la région Francfort.

  2. Promouvoir la base de données PostgreSQL dans la région de Londres : le groupe de plans comporte des étapes permettant de promouvoir la base de données PostgreSQL dans la région de Londres.

  3. Modifier le sens de réplication de base de données PostgreSQL : le groupe de plans disposera des étapes permettant de modifier le sens de réplication de base de données PostgreSQL (LON-FRA).

Remarque : assurez-vous que les étapes sont exécutées dans le même ordre.

Créez le groupe de plans défini par l'utilisateur suivant.

  1. Créez un groupe de plans Arrêter la base de données PostgreSQL dans la région Francfort.

    1. Sous Groupes de plans, cliquez sur Ajouter un groupe pour créer un groupe de plans personnalisé afin d'arrêter la base de données PostgreSQL dans la région Francfort. Entrez le nom de groupe Stop PostgreSQL Database at Frankfurt Region.

      Arrêter la base de données PostgreSQL dans FRA

    2. Cliquez sur Ajouter une étape et entrez les informations suivantes. Nous ajouterons une étape au groupe de plans.

      • Veillez à choisir la région en tant que Frankfurt et l'instance cible en tant que postgresql01. Sélectionnez le script d'exécution de stockage d'objet et l'emplacement du script choisit le bucket de stockage d'objet OCI posgres-dr-lon.

      • Entrez les détails du script stop_postgresql.sh avec l'emplacement du script. Le script arrête la base de données PostgreSQL dans la région FRA.

      • Cliquez sur Ajouter une étape et vérifiez l'étape ajoutée.

      Etape Arrêter la base de données PostgreSQL

  2. Créez un groupe de plans Promouvoir la base de données PostgreSQL dans la région de Londres.

    1. Sous Groupes de plans, cliquez sur Ajouter un groupe pour créer un groupe de plans personnalisé afin de promouvoir la base de données PostgreSQL à Londres. Entrez le nom de groupe Promote PostgreSQL Database at London Region.

      Promouvoir la base de données PostgreSQL dans LON

    2. Cliquez sur Ajouter une étape et entrez les détails suivants. Nous ajouterons une étape au groupe de plans.

      • Veillez à choisir la région comme London, et l'instance cible comme postgresql02. Sélectionnez le script d'exécution de stockage d'objet et l'emplacement du script choisit le bucket OCI Object Storage posgres-dr-lon.

      • Entrez les détails du script promote_postgresql.sh avec l'emplacement du script. Le script arrête la base de données PostgreSQL dans la région FRA.

      • Cliquez sur Ajouter une étape et vérifiez l'étape ajoutée.

      Etape de promotion de la base de données PostgreSQL

  3. Créez le groupe de plans Modifier le sens de réplication de base de données PostgreSQL.

    1. Sous Groupes de plans, cliquez sur Ajouter un groupe pour créer un groupe de plans personnalisé afin de modifier le sens de réplication de la base de données PostgreSQL. Entrez le nom de groupe Promote PostgreSQL Database at London Region.

      Modifier la réplication de base de données PostgreSQL directionN

    2. Cliquez sur Ajouter une étape et entrez les informations suivantes. Nous ajouterons une étape au groupe de plans.

      • Veillez à choisir la région en tant que Frankfurt et l'instance cible en tant que postgresql01. Sélectionnez le script d'exécution de stockage d'objet et l'emplacement du script, choisissez le bucket OCI Object Storage posgres-dr-lon.

      • Entrez les détails du script change_replication_direction.sh avec l'emplacement du script. Le script arrête la base de données PostgreSQL dans la région FRA.

      • Cliquez sur Ajouter une étape et vérifiez l'étape ajoutée.

      Modifier l'étape de direction de réplication de base de données PostgreSQL

Groupes de plan Londres

Tâche 4 : exécuter les prévérifications et exécuter le plan de permutation

L'option Exécuter les prévérifications effectue une validation rapide de toutes les étapes d'un plan de récupération après sinistre et des membres qui y sont associés.

  1. Dans le plan de permutation postgresql-switchover-frankfurt-london, cliquez sur Exécuter les prévérifications pour exécuter les prévérifications.

    Vérification de la permutation

    Vérifiez que l'opération s'est déroulée avec succès.

    Statut de la prévérification pour la permutation

  2. Dans le plan de permutation postgresql-switchover-frankfurt-london, cliquez sur Exécuter le plan de récupération après sinistre pour l'exécuter.

    Exécuter un plan de récupération après sinistre

  3. Vérifiez le statut du plan et assurez-vous que toutes les étapes du plan ont abouti.

    Exécuter le statut du plan de récupération après sinistre

  4. Le plan de permutation exécute tous les groupes de plans dans un ordre spécifique. Une fois le plan exécuté, la base de données PostgreSQL est promue comme maître dans la région de Londres.

  5. Le rôle change automatiquement dans le DRPG. Maintenant, Londres aura le rôle principal et Francfort aura le rôle de secours.

  6. Vérifiez la base de données PostgreSQL à Londres.

Tâche 5 : créer un plan de permutation dans le DRPG de secours (Francfort) pour la permutation

Tâche 5.1 : créer un plan de permutation dans le DRPG de secours (Londres)

  1. Créez un plan de permutation dans le DRPG de secours postgresql-fran.

  2. Sélectionnez Plans et cliquez sur Créer un plan.

  3. Entrez postgresql-switchover-london-frankfurt dans le champ Nom et sélectionnez Switchover (planned) dans le champ Type de plan.

  4. Cliquez sur Créer.

Groupes de plans

Remarque : veillez à créer le plan de permutation à partir du DRPG de secours (Francfort).

Tâche 5.2 : Personnaliser le plan de permutation avec différents groupes de plans définis par l'utilisateur

Nous devons personnaliser le plan de permutation avec d'autres groupes de plans définis par l'utilisateur. Nous devons également créer les scripts bash suivants et les télécharger vers OCI Object Storage. Nous pouvons donc les appeler lors de la permutation.

Remarque : ces scripts doivent être téléchargés vers le bucket de la région Francfort.

Un workflow standard pour la permutation de récupération après sinistre est le suivant :

  1. Rembobiner les bases de données PostgreSQL : groupe de plans pour rembobiner la base de données. Francfort synchronisera le contenu de la base de données de Londres.

  2. Rétablir la réplication de base de données PostgreSQL vers Londres : le groupe de plans aura une étape pour commencer à répliquer la base de données PostgreSQL de Francfort vers la région de Londres.

Remarque : assurez-vous que les étapes sont exécutées dans le même ordre.

Créez les deux groupes de plans définis par l'utilisateur suivants :

  1. Créez le groupe de plans Rembobiner les bases de données PostgreSQL.

    1. Sous Groupes de plans, cliquez sur Ajouter un groupe pour créer un groupe de plans personnalisé afin de rembobiner la base de données PostgreSQL dans la région Francfort. Entrez le nom de groupe Rewind PostgreSQL Databases at Frankfurt Region.

      Rembobiner la base de données PostgreSQL dans FRA

    2. Cliquez sur Ajouter une étape et entrez les informations suivantes. Nous ajouterons une étape au groupe de plans.

      • Veillez à choisir la région en tant que Frankfurt et l'instance cible en tant que postgresql01. Sélectionnez le script d'exécution de stockage d'objet et l'emplacement du script choisit le bucket OCI Object Storage posgres-dr-lon.

      • Entrez les détails du script rewind_postgresql.sh avec l'emplacement du script. Le script arrête la base de données PostgreSQL dans la région FRA.

      • Cliquez sur Ajouter une étape et vérifiez l'étape ajoutée.

      Etape de rembobinage de la base de données PostgreSQL

  2. Créez le groupe de plans Rétablir la réplication de base de données PostgreSQL vers Londres.

    1. Sous Groupes de plans, cliquez sur Ajouter un groupe pour créer un groupe de plans personnalisé afin de rétablir la réplication de base de données PostgreSQL vers Londres. Entrez le nom de groupe Promote PostgreSQL Database at London Region.

      Rétablir la réplication de base de données PostgreSQL dans LON

    2. Cliquez sur Ajouter une étape et entrez les informations suivantes. Nous ajouterons une étape au groupe de plans.

      • Veillez à choisir la région en tant que London et l'instance cible en tant que postgresql02. Sélectionnez le script d'exécution de stockage d'objet et l'emplacement du script choisit le bucket OCI Object Storage posgres-dr-lon.

      • Entrez les détails du script replicate_postgresql.sh avec l'emplacement du script. Le script arrête la base de données PostgreSQL dans la région FRA.

      • Cliquez sur Ajouter une étape et vérifiez l'étape ajoutée.

      Rétablir l'étape de réplication de base de données PostgreSQL

Tâche 6 : exécuter des prévérifications et exécuter le plan de permutation

L'option Exécuter les prévérifications effectue une validation rapide de toutes les étapes d'un plan de récupération après sinistre et des membres qui y sont associés.

  1. Dans le plan de permutation postgresql-switchover-london-frankfurt, cliquez sur Exécuter les prévérifications pour exécuter les prévérifications.

    Vérification de la permutation

    Vérifiez que l'opération s'est déroulée avec succès.

    Statut de la prévérification pour la permutation

  2. Dans le plan de permutation postgresql-switchover-london-frankfurt, cliquez sur Exécuter le plan de récupération après sinistre pour l'exécuter.

    Exécuter un plan de récupération après sinistre

  3. Vérifiez le statut du plan et assurez-vous que toutes les étapes du plan ont abouti.

    Exécuter le statut du plan de récupération après sinistre

  4. Le plan de permutation exécute tous les groupes de plans dans un ordre spécifique. Une fois le plan exécuté, la base de données PostgreSQL est promue maître dans la région de Francfort.

  5. Le rôle change automatiquement dans le DRPG. Maintenant, Francfort aura le rôle principal et Londres aura le rôle de secours.

  6. Vérifiez la base de données PostgreSQL à Francfort.

Etapes suivantes

Vous avez appris à effectuer automatiquement la permutation de base de données PostgreSQL et à annuler les opérations de récupération après sinistre à l'aide de la récupération après sinistre OCI Full Stack. Pour plus d'informations, reportez-vous à la documentation relative à la récupération après sinistre de la pile complète OCI dans la section Liens associés.

Remerciements

Ressources de formation supplémentaires

Parcourez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, rendez-vous sur education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.