Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Introduction à l' niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles propres à votre environnement en nuage.
Automatisez la permutation et le basculement pour la base de données PostgreSQL avec Oracle Cloud Infrastructure Full Stack Disaster Recovery
Présentation
Oracle Cloud Infrastructure Full Stack Disaster Recovery (RD de pile complète OCI) orchestre la transition des services de calcul, de base de données et d'applications entre les régions Oracle Cloud Infrastructure (OCI) du monde entier en un seul clic. Les clients peuvent automatiser les étapes nécessaires à la récupération d'un ou de plusieurs systèmes d'affaires sans repenser ou réorganiser l'infrastructure, les bases de données ou les applications existantes et sans avoir besoin de serveurs de gestion ou de conversion spécialisés.
La récupération après sinistre de pile complète OCI 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 seau de stockage d'objets OCI.
Architecture de déploiement
Note : La région principale est Francfort et la région RS est Londres.
Objectifs
- Automatisez la permutation et le basculement pour la base de données PostgreSQL avec la récupération après sinistre de pile complète OCI.
Préalables
-
Privilèges d'administrateur ou configuration des politiques Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) requises pour la récupération après sinistre de pile complète OCI. Pour plus d'informations, voir Configuration des politiques de gestion des identités et des accès (IAM) pour utiliser la récupération après sinistre de pile complète OCI et Politiques pour la récupération après sinistre de pile complète OCI.
-
Vous devez activer le plugiciel d'exécution de commande de l'instance de calcul dans la base principale et la base de secours, car la récupération après sinistre de pile complète OCI exécutera les commandes
sudo
pour monter et démonter des commandes lors de la permutation. Pour plus d'informations sur les commandes d'exécution sur l'instance de calcul OCI, voir Exécution de commandes sur l'instance de calcul OCI. -
Utilisez la commande d'exécution avec la récupération après sinistre de pile complète OCI. Pour plus d'informations, voir Appeler des scripts personnalisés à l'aide de la commande d'exécution avec Oracle Cloud Infrastructure Full Stack Disaster Recovery.
-
Établissez une connexion d'appairage distant (RPC) entre deux passerelles de routage dynamique (DRG) situées dans les mêmes locations. Pour plus d'informations, voir Appairage distant de réseaux VCN au moyen d'une passerelle DRG mise à niveau.
-
Assurez-vous que les deux machines peuvent communiquer sur le port PostgreSQL
5432
pour la réplication de base de données, en configurant la liste de sécurité ou le groupe de sécurité de réseau respectif. -
Utilisez l'hôte bastion en tant que service ou un hôte bastion pour la connexion aux serveurs PostegreSQL.
-
Seau de stockage d'objets pour OCI (un dans chaque région).
Tâche 1 : Installer et configurer PostgreSQL
-
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
-
Activez le pare-feu Linux pour recevoir les connexions.
sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent sudo firewall-cmd --reload
-
Modifiez le fichier
postgresql.conf
(qui se trouve dans xxxxx) pour autoriser la connexion et modifiez les paramètreswal
comme suit.... listen_addresses = '*' ... wal_level = logical wal_log_hints = on ...
-
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';
-
Ajoutez cet utilisateur au fichier
pg_hba.conf
(qui se trouve dans xxxxx).host all all all md5 host replication replica_user <IP Host 1> md5 host replication replica_user <IP Host 2> md5
-
Redémarrez la base de données PostgreSQL pour appliquer les modifications.
sudo systemctl restart postgresql
-
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.
-
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');
-
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
-
Vérifiez que la réplication est en cours d'exécution sur la base 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 pour récupération après sinistre (DRPG)
-
Dans la région principale (Francfort), cliquez sur le menu hamburger, naviguez jusqu'à Migration et récupération après sinistre, Récupération après sinistre, Groupe de protection pour récupération après sinistre et Créer un groupe de protection pour récupération après sinistre.
-
Dans la région de secours (Londres), cliquez sur le menu hamburger, naviguez jusqu'à Migration et récupération après sinistre, Récupération après sinistre, Groupe de protection pour récupération après sinistre et Créer un groupe de protection pour récupération après sinistre.
-
Dans la région principale (Francfort), entrez les informations suivantes et cliquez sur Associer.
- Rôle :
Primary
. - Région pair :
UK South (London)
. - Groupe de protection RS pair :
postgresql-lon
.
- Rôle :
Tâche 3.2 : Ajouter des membres à la passerelle DRPG principale et de secours
-
Dans la passerelle DRPG principale (
postgresql-fra
), sélectionnez Membres et ajoutez la machine virtuelle de calcul (postgresql01
) en tant que membre.Note : Lors de l'ajout du service de calcul en tant que membre, sélectionnez Instance non mobile dans le type d'instance de calcul, car nous avons une configuration passive-active pour la base de données PostgreSQL.
-
Dans la passerelle DRPG de secours (
postgresql-lon
), sélectionnez Membres et ajoutez la machine virtuelle de calcul (postgresql02
) en tant que membre.Note : Lors de l'ajout du service de calcul en tant que membres, sélectionnez Instance non mobile dans le type d'instance de calcul, car nous avons une configuration passive-active pour la base de données PostgreSQL.
Tâche 3.3 : Créer un plan de permutation dans la passerelle DRPG de secours (Londres)
Plan de permutation : Type de plan RS qui effectue une transition planifiée des services de la passerelle DRPG principale vers la passerelle DRPG de secours.
-
Créez un plan de permutation dans la passerelle DRPG de secours
postgresql-lon
. -
Sélectionnez Plans et cliquez sur Créer un plan.
-
Entrez le nom
postgresql-switchover-frankfurt-london
et sélectionnez le type de planSwitchover (planned)
. -
Cliquez sur Créer.
Note : Assurez-vous de créer le plan de permutation à partir de la passerelle 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 RS. 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 charger dans le stockage d'objets OCI pour pouvoir les appeler lors de la permutation.
-
stop_postgresql.sh
.#!/bin/bash sudo systemctl stop postgresql
-
promote_postgresql.sh
.#!/bin/bash sudo -u postgres /usr/bin/pg_ctl promote -D /var/lib/pgsql/data/ sudo -u postgres psql -c "select pg_create_physical_replication_slot('replica_1');"
-
change_replication_direction.sh
.#!/bin/bash sudo rm -rv /var/lib/pgsql/data/ sudo sudo pg_basebackup -d "host=<IP Host 2> port=5432 user=replica_user password=YourUserPassword" -w -X stream -S replica_1 -v -R -W -D /var/lib/pgsql/data/ --no-password sudo chown postgres -R /var/lib/pgsql/data/ sudo systemctl start postgresql sudo -u postgres psql -c "select pg_create_physical_replication_slot('replica_0');"
Note : Ces scripts doivent être chargés dans le seau de la région Londres.
Un flux de travail type pour la permutation de récupération après sinistre est le suivant :
-
Arrêter la base de données PostgreSQL dans la région de Francfort : Le groupe de plans comporte des étapes pour arrêter la base de données PostgreSQL dans la région de Francfort.
-
Promouvoir la base de données PostgreSQL dans la région de Londres : Le groupe de plans comporte des étapes pour promouvoir la base de données PostgreSQL dans la région de Londres.
-
Modifier la direction de réplication de base de données PostgreSQL : Le groupe de plans comporte des étapes pour modifier la direction de réplication de base de données PostgreSQL (LON-FRA).
Note : 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.
-
Créez le groupe de plans Arrêter la base de données PostgreSQL dans la région Francfort.
-
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 de Francfort. Entrez Nom du groupe comme
Stop PostgreSQL Database at Frankfurt Region
. -
Cliquez sur Ajouter une étape et entrez les informations suivantes. Nous ajouterons une étape dans le groupe de plans.
-
Veillez à sélectionner la région comme
Frankfurt
et l'instance cible commepostgresql01
. Sélectionnez le script d'exécution du stockage d'objets et l'emplacement du script choisit le seau de stockage d'objets OCIposgres-dr-lon
. -
Entrez les détails du script
stop_postgresql.sh
avec l'emplacement du script. Le script arrêtera la base de données PostgreSQL dans la région FRA. -
Cliquez sur Ajouter une étape et vérifiez l'étape ajoutée.
-
-
-
Créez un groupe de plans Promouvoir la base de données PostgreSQL dans la région Londres.
-
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 Nom du groupe comme
Promote PostgreSQL Database at London Region
. -
Cliquez sur Ajouter une étape et entrez les détails suivants. Nous ajouterons une étape dans le groupe de plans.
-
Veillez à sélectionner la région comme
London
, l'instance cible commepostgresql02
. Sélectionnez le script d'exécution du stockage d'objets et l'emplacement du script choisit le seau de stockage d'objets OCIposgres-dr-lon
. -
Entrez les détails du script
promote_postgresql.sh
avec l'emplacement du script. Le script arrêtera la base de données PostgreSQL dans la région FRA. -
Cliquez sur Ajouter une étape et vérifiez l'étape ajoutée.
-
-
-
Créez un groupe de plans Modifier la direction de réplication de base de données PostgreSQL.
-
Sous Groupes de plans, cliquez sur Ajouter un groupe pour créer un groupe de plans personnalisé afin de modifier la direction de réplication de la base de données PostgreSQL. Entrez Nom du groupe comme
Promote PostgreSQL Database at London Region
. -
Cliquez sur Ajouter une étape et entrez les informations suivantes. Nous ajouterons une étape dans le groupe de plans.
-
Veillez à sélectionner la région comme
Frankfurt
et l'instance cible commepostgresql01
. Sélectionnez le script d'exécution du stockage d'objets et l'emplacement du script, sélectionnez le seau de stockage d'objets OCIposgres-dr-lon
. -
Entrez les détails du script
change_replication_direction.sh
avec l'emplacement du script. Le script arrêtera la base de données PostgreSQL dans la région FRA. -
Cliquez sur Ajouter une étape et vérifiez l'étape ajoutée.
-
-
Tâche 4 : Exécuter les vérifications préalables et exécuter le plan de permutation
L'option Exécuter les vérifications préalables permet d'effectuer une validation rapide de toutes les étapes d'un plan RS ainsi que des membres associés à ces étapes.
-
Dans le plan de permutation
postgresql-switchover-frankfurt-london
, cliquez sur Exécuter les vérifications préalables pour exécuter les vérifications préalables.Vérifiez que l'exécution a réussi.
-
Dans le plan de permutation
postgresql-switchover-frankfurt-london
, cliquez sur Exécuter le plan de récupération après sinistre pour exécuter le plan. -
Vérifiez le statut du plan et assurez-vous que toutes les étapes du plan réussissent.
-
Le plan de permutation exécute tous les groupes de plans dans un ordre spécifique. Après l'exécution réussie du plan, la base de données PostgreSQL sera promue en base principale dans la région de Londres.
-
Le rôle change automatiquement dans la passerelle DRPG. Maintenant, Londres aura le rôle principal et Francfort aura le rôle de secours.
-
Vérifiez la base de données PostgreSQL à Londres.
Tâche 5 : Créer un plan de permutation dans la passerelle DRPG de secours (Francfort) vers Switchback
Tâche 5.1 : Créer un plan de permutation dans la passerelle DRPG de secours (Londres)
-
Créez un plan de permutation dans la passerelle DRPG de secours
postgresql-fran
. -
Sélectionnez Plans et cliquez sur Créer un plan.
-
Entrez le nom
postgresql-switchover-london-frankfurt
et sélectionnez le type de planSwitchover (planned)
. -
Cliquez sur Créer.
Note : Assurez-vous de créer le plan de permutation à partir de la passerelle 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 charger dans le stockage d'objets OCI, afin de pouvoir les appeler lors de la permutation.
-
rewind_postgresql.sh
.#!/bin/bash sudo systemctl stop postgresql sudo rm -rv /var/lib/pgsql/data/ sudo -u postgres pg_basebackup -d "host=<IP Host 2> port=5432 user=replica_user password=YourUserPassword" -v -R -D /var/lib/pgsql/data/ --no-password sudo chown postgres -R /var/lib/pgsql/data/ sudo systemctl start postgresql sudo -u postgres /usr/bin/pg_ctl promote -D /var/lib/pgsql/data/ sudo -u postgres psql -c "select pg_create_physical_replication_slot('replica_0');"
-
replicate_postgresql.sh
.#!/bin/bash sudo systemctl stop postgresql sudo rm -rv /var/lib/pgsql/data/ sudo pg_basebackup -d "host=<IP Host 2> 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
Note : Ces scripts doivent être chargés dans le seau de la région de Francfort.
Un flux de travail type pour la permutation de récupération après sinistre est le suivant :
-
Rewind PostgreSQL Databases : Groupe de plans pour rembobiner la base de données. Francfort synchronisera le contenu de la base de données de Londres.
-
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.
Note : Assurez-vous que les étapes sont exécutées dans le même ordre.
Créer les deux groupes de plans définis par l'utilisateur suivants
-
Créez le groupe de plans Rewind PostgreSQL Databases.
-
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 de Francfort. Entrez Nom du groupe comme
Rewind PostgreSQL Databases at Frankfurt Region
. -
Cliquez sur Ajouter une étape et entrez les informations suivantes. Nous ajouterons une étape au groupe de plans.
-
Veillez à sélectionner la région comme
Frankfurt
et l'instance cible commepostgresql01
. Sélectionnez le script d'exécution du stockage d'objets et l'emplacement du script choisit le seau de stockage d'objets OCIposgres-dr-lon
. -
Entrez les détails du script
rewind_postgresql.sh
avec l'emplacement du script. Le script arrêtera la base de données PostgreSQL dans la région FRA. -
Cliquez sur Ajouter une étape et vérifiez l'étape ajoutée.
-
-
-
Créez le groupe de plans Rétablir la réplication de base de données PostgreSQL vers Londres.
-
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 à Londres. Entrez Nom du groupe comme
Promote PostgreSQL Database at London Region
. -
Cliquez sur Ajouter une étape et entrez les informations suivantes. Nous ajouterons une étape dans le groupe de plans.
-
Veillez à sélectionner la région comme
London
et l'instance cible commepostgresql02
. Sélectionnez le script d'exécution du stockage d'objets et l'emplacement du script choisit le seau de stockage d'objets OCIposgres-dr-lon
. -
Entrez les détails du script
replicate_postgresql.sh
avec l'emplacement du script. Le script arrêtera la base de données PostgreSQL dans la région FRA. -
Cliquez sur Ajouter une étape et vérifiez l'étape ajoutée.
-
-
Tâche 6 : Exécuter les vérifications préalables et exécuter le plan de permutation
Les vérifications préalables d'exécution effectuent une validation rapide de toutes les étapes d'un plan RS ainsi que des membres associés à ces étapes.
-
Dans le plan de permutation
postgresql-switchover-london-frankfurt
, cliquez sur Exécuter les vérifications préalables pour exécuter les vérifications préalables.Vérifiez que l'exécution a réussi.
-
Dans le plan de permutation
postgresql-switchover-london-frankfurt
, cliquez sur Exécuter le plan de récupération après sinistre pour exécuter le plan. -
Vérifiez le statut du plan et assurez-vous que toutes les étapes du plan réussissent.
-
Le plan de permutation exécute tous les groupes de plans dans un ordre spécifique. Après l'exécution réussie du plan, la base de données PostgreSQL sera promue en base principale dans la région de Francfort.
-
Le rôle change automatiquement dans la passerelle DRPG. Maintenant, Francfort aura le rôle principal et Londres aura le rôle de secours.
-
Vérifiez la base de données PostgreSQL à Francfort.
Étapes suivantes
Vous avez vu comment effectuer automatiquement la permutation de base de données PostgreSQL et permuter les opérations de récupération après sinistre à l'aide de la récupération après sinistre de pile complète OCI. Pour plus d'informations, consultez la documentation sur la récupération après sinistre de pile complète OCI dans la section Liens connexes.
Liens connexes
-
Oracle Cloud Infrastructure (OCI) : Récupération après sinistre de pile complète
-
Documentation de récupération après sinistre de pile complète OCI
Confirmation
-
Auteur - Raphael Teixeira (Membre principal du personnel technique pour FSDR)
-
Contributeurs - Ricardo Malhado (Hyperscaler to OCI Specialist), Suraj Ramesh (Gestionnaire principal de produit pour MAA)
Autres ressources d'apprentissage
Explorez d'autres laboratoires sur la page docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal YouTube d'Oracle Learning. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.
Automate Switchover and Failover for PostgreSQL Database with Oracle Cloud Infrastructure Full Stack Disaster Recovery
F96162-01
April 2024