En savoir plus sur la configuration d'une base de données de secours pour la récupération après sinistre

Oracle Data Guard garantit la haute disponibilité, la protection des données et la récupération après sinistre des données d'entreprise résidant dans Oracle Database. Oracle Data Guard fournit un jeu complet de services qui créent, tiennent à jour, gèrent et surveillent une ou plusieurs bases de données de secours pour permettre aux bases de données Oracle de production de survivre aux catastrophes et aux corruptions de données.

Oracle Data Guard tient à jour ces bases de données de secours en tant que copies de la base de données de production. Si la base de données de production devient indisponible en raison d'une interruption planifiée ou non planifiée, Oracle Data Guard peut remplacer n'importe quelle base de données de secours par le rôle de production, réduisant ainsi le temps d'arrêt associé à l'interruption.

Architecture

Cette architecture présente une configuration Oracle Data Guard avec une base de données principale qui transmet les données de journalisation à une base de données de secours. La base de secours est située à distance de la base principale pour les opérations de récupération après sinistre et de sauvegarde.

Une description de dataguard-dr-db.png suit
Description de l'illustration dataguard-dr-db.png

dataguard-dr_db-oracle.zip

Oracle Data Guard utilise les services de transport et d'application des données de journalisation pour gérer la transmission des données de journalisation, l'application des données de journalisation et les modifications apportées aux rôles de base de données.

Cette architecture prend en charge les composants Oracle Data Guard suivants :

  • Services de transport des informations de journalisation

    Les services de transport des informations de journalisation contrôlent le transfert automatisé des données de journalisation de la base de données de production vers une ou plusieurs destinations d'archivage.

    Les services de transport des informations de journalisation effectuent les tâches suivantes :

    • Transmettez les données de journalisation du système principal aux systèmes de secours de la configuration.
    • Gérer le processus de résolution des lacunes dans les fichiers de journalisation archivés en raison d'une défaillance du réseau.
    • Détectez automatiquement les fichiers de journalisation archivés manquants ou corrompus sur un système de secours et extrayez automatiquement les fichiers de journalisation archivés de remplacement de la base principale ou d'une autre base de secours.
  • Appliquer des services

    Les services d'application des modifications appliquent automatiquement les données de journalisation sur la base de secours pour assurer la cohérence avec la base principale.

    Les données de journalisation sont transmises à partir de la base principale et écrites dans le fichier de journalisation de secours de la base de secours. Les données de journalisation sont appliquées directement à partir des fichiers de journalisation de secours, car elles sont remplies à l'aide de l'application en temps réel. Les services Apply permettent également un accès en lecture seule aux données.

  • Transitions de rôle
    À l'aide d'Oracle Data Guard, vous pouvez modifier le rôle d'une base de données de secours en base de données principale, ou d'une base de données principale en base de secours à l'aide d'une opération de permutation ou de basculement. Oracle Data Guard simplifie les transitions de rôle et automatise les basculements.
    • Une permutation de rôles est un échange de rôle entre la base principale et l'une de ses bases de secours. Une permutation garantit qu'il n'y aura aucune perte de données. Cette opération est généralement effectuée pour la maintenance planifiée du système principal. Lors d'une permutation, la base principale prend le rôle de base de secours et la base de secours prend le rôle de base principale.
    • Un basculement se produit lorsque la base de données principale n'est pas disponible. Le basculement n'est effectué qu'en cas de défaillance de la base principale, ce qui entraîne la transition d'une base de secours vers le rôle de base principale. L'administrateur de base de données peut configurer Oracle Data Guard pour éviter toute perte de données.

Plusieurs étapes manuelles sont impliquées dans la configuration d'Oracle Data Guard, notamment, mais sans s'y limiter, les suivantes :

  • Préparer la base principale avec les paramètres recommandés
  • Préparer les alias TNS dans les environnements principal et de secours
  • Créer la base de secours physique en tant que duplication de la base principale
  • Configurer Data Guard

Ces étapes manuelles sont largement documentées dans plusieurs documents Oracle. Ce livre de jeu fournit un jeu de scripts que vous pouvez utiliser pour automatiser la plupart de ces actions. Ces scripts permettent de configurer Oracle Data Guard en configurant une base de données de secours pour une base de données principale existante. Les scripts utilisent la fonction restore from service Oracle Recovery Manager (RMAN) et Oracle Data Guard Broker.

Étapes préliminaires

Avant de configurer Oracle Data Guard à l'aide des scripts fournis dans ce document, vérifiez les hypothèses et les exigences suivantes :

  • La base de données principale existe déjà.

  • Les noeuds de secours existent déjà, avec ou sans base de données existante.

    Note :

    S'il existe déjà une base de données dans l'emplacement de secours, les scripts la suppriment avant de recréer la base de secours.
  • Il existe une connectivité mutuelle entre la base principale et la base de secours à l'aide du port du module d'écoute de la base de données.

    • Pour les bases de données à instance unique, il doit y avoir une connexion bidirectionnelle entre l'hôte de la base de données principale et l'adresse IP et le port du module d'écoute de la base de données de secours.
    • Pour les bases de données Oracle Real Application Clusters (Oracle RAC), il doit y avoir une connexion bidirectionnelle entre les hôtes de la base de données principale et les adresses IP virtuelles et les ports de la base de données de secours.

    Les scripts effectuent des vérifications de connectivité, mais vous pouvez utiliser la commande nc -vw 5 -z IP PORT pour vérifier la connectivité distante.

  • Oracle Automatic Storage Management (Oracle ASM) est utilisé pour les fichiers de données, les fichiers de contrôle, les fichiers de journalisation en ligne et les fichiers de journalisation archivés.

    • Pour les bases de données à instance unique, le fichier de mots de passe et spfile peuvent être situés dans des systèmes de fichiers standard ou dans Oracle ASM.
    • Pour les bases de données Oracle RAC, le fichier de mots de passe et spfile doivent se trouver dans Oracle ASM.
  • Les bases de données principale et de secours sont gérées par Oracle Clusterware (Oracle Grid Infrastructure doit être installé, car les topologies unique et Oracle RAC utilisent srvctl).
  • Comme les fichiers gérés par Oracle sont utilisés, les paramètres de base de données db_create_file_dest, db_create_online_log_dest_1 et db_recovery_file_dest doivent déjà être définis dans la base principale avec l'emplacement de groupe de disques Oracle ASM approprié (par exemple +DATA ou +RECO).
  • Le responsable du logiciel du système de gestion de base de données relationnelle (SGBDR) (par exemple, l'utilisateur oracle) définit les variables d'environnement Oracle requises (ORACLE_HOME, LD_LIBRARY_PATH, PATH, ORACLE_UNQNAME et ORACLE_SID) dans son profil.
  • On suppose qu'une topologie symétrique est utilisée (c'est-à-dire que si la base principale est une base de données unique, la base de secours est une base de données unique; si la base principale est une base de données Oracle RAC, la base de secours est également une base de données Oracle RAC).
  • Si les bases de données sont Oracle RAC, il est supposé que chaque Oracle RAC comporte 2 noeuds.
  • Les scripts sont valides pour configurer une base de données de secours pour une base de données principale qui n'a pas déjà de base de données de secours.
  • Les scripts sont également valides pour ajouter une nouvelle base de données de secours supplémentaire à une base Oracle Data Guard existante. Pour ce scénario, vous devez utiliser la propriété ADDITIONAL_STANDBY=YES dans le fichier de propriétés. Dans ce cas, la nouvelle base de secours est ajoutée à la configuration Data Guard Broker existante.

À propos des fonctions de script

Voici les caractéristiques des scripts :

  • Les scripts sont idémpotents : ils peuvent être réexécutés en cas d'erreur.
  • Les noms d'utilisateur du système d'exploitation (tels que oracle et grid) et les dossiers (Database home et Grid home) sont configurables.
  • Les utilisateurs Oracle et Grid OS peuvent être le même utilisateur ou des utilisateurs différents.
  • Le chiffrement transparent des données pour les fichiers de base de données est facultatif : les scripts sont valides pour les deux cas (TDE et aucun TDE).

    Note :

    une configuration symétrique sera effectuée : si la base de données principale utilise le TDE, la base de données de secours sera configurée avec le TDE; si la base de données principale n'utilise pas le TDE, la base de données de secours n'utilisera pas le TDE.
  • Le répertoire de base Oracle (ROOH) en lecture seule est pris en charge. Les scripts sont prêts à fonctionner automatiquement dans des environnements avec ROOH et avec des répertoires d'origine Oracle Home " traditionnels ".
  • Les scripts sont valides à la fois pour les environnements Oracle RAC et à instance unique (dans une topologie symétrique).
  • Les scripts sont validés dans les versions SGBDR 12c (12.2), 18c, 19c et 21c.
  • Les scripts sont validés dans Oracle Cloud Infrastructure (systèmes de base de données) et dans les environnements sur place.
  • Les scripts ont été validés pour configurer un Oracle Data Guard hybride, où la base de données principale est sur place et la base de secours est un système de base de données dans Oracle Cloud Infrastructure.

À propos des fichiers de script

Voici la description des fichiers de script utilisés dans cette solution :

  • 1_prepare_primary_maa_parameters.sh

    Se connecte à la base de données principale et la configure avec les paramètres MAA (Oracle Maximum Availability Architecture) recommandés pour Oracle Data Guard. Il crée les fichiers de journalisation de secours, définit les valeurs pour DB_BLOCK_CHECKSUM, DB_FLASHBACK_RETENTION_TARGET, etc. Ce script est exécuté une seule fois, que la base de données principale soit une base de données Oracle Real Application Clusters (Oracle RAC) ou une base de données à instance unique.

  • 2_dataguardit_primary.sh

    Prépare les hôtes principaux pour Oracle Data Guard. Il ajoute les alias TNS requis au fichier tnsnames.ora, vérifie la connectivité avec la base de données de secours distante, configure le chiffrement net s'il n'est pas déjà défini et génère les fichiers tar de sortie qui contiennent le fichier de mots de passe principal et le portefeuille Chiffrement transparent des données (TDE) (s'il est utilisé).

  • create_pw_tar_from_asm_root.sh

    Ce script n'est pas toujours requis. Il n'est requis que lorsque le fichier de mots de passe principal est stocké dans Oracle Automatic Storage Management (Oracle ASM). Il crée un fichier tar de sortie avec le fichier de mots de passe.

  • 3_dataguardit_standby_root.sh

    Prépare les nouveaux hôtes de secours et crée la base de données de secours à l'aide de la fonction restore from service Oracle Recovery Manager (RMAN) et du courtier Oracle Data Guard. S'il existe une base de données dans ces hôtes (soit une base de données en cours d'exécution, soit à la suite d'une tentative d'exécution de script précédente), les scripts la suppriment avant de recréer la nouvelle base de données en tant que base de secours.

  • DG_properties.ini

    Il s'agit du fichier de propriétés qui doit être personnalisé avec les valeurs spécifiques de l'environnement. Il est utilisé par tous les scripts, à la fois dans la base principale et dans la base de secours.

À propos des produits et des rôles requis

Cette solution nécessite les rôles suivants pour les systèmes de base de données principale et de secours :

Nom du produit : Rôle Obligatoire pour...
Oracle Database : sys exécuter tous les scripts
Hôte Oracle Database (principal) : utilisateur du système d'exploitation oracle avec les autorisations d'exécution exécuter les scripts suivants :
  • 1_prepare_primary_maa_parameters.sh
  • 2_dataguardit_primary.sh
Hôte Oracle Database (principal) : root exécuter le script suivant lorsque le fichier de mots de passe principal est stocké dans ASM : create_pw_tar_from_asm_root.sh
Hôte Oracle Database (secondaire) : root Exécutez le script suivant :
  • 3_dataguardit_standby_root.sh

Voir Produits, solutions et services Oracle pour obtenir ce dont vous avez besoin.