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 Enterprise résidant dans Oracle Database. Oracle Data Guard fournit un ensemble complet de services permettant de créer, de maintenir, de gérer et de surveiller des bases de données de secours afin de permettre aux bases de données Oracle de production de survivre aux sinistres et aux corruptions de données.

Oracle Data Guard conserve 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 coupure planifiée ou non planifiée, Oracle Data Guard peut basculer n'importe quelle base de données de secours vers le rôle de production, réduisant ainsi le temps d'inactivité associé à la panne.

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 données de secours est située à distance de la base de données principale pour les opérations de récupération après sinistre et de sauvegarde.

Description de l'image dataguard-dr-db.png
Description de l'illustration dataguard-dr-db.png

dataguard-dr_db-oracle.zip

Oracle Data Guard utilise Redo Transport Services et Apply Services 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 automatique 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 :

    • Transmettre 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 éventuelles lacunes dans les fichiers de journalisation archivés en raison d'une panne réseau.
    • Détecter automatiquement les fichiers de journalisation archivés manquants ou endommagés sur un système de secours et extraire automatiquement les fichiers de journalisation archivés de remplacement de la base principale ou d'une autre base de données de secours.
  • Appliquer des services

    Les services Apply appliquent automatiquement les données de journalisation sur la base de secours afin de conserver 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 données 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 d'application permettent également un accès en lecture seule aux données.

  • Transitions de rôles
    A 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 données de secours à l'aide d'une permutation ou d'une opération de basculement. Oracle Data Guard simplifie les transitions de rôles et automatise les basculements.
    • Une permutation de rôles est une inversion de rôles entre la base de données principale et l'une de ses bases de données de secours. La permutation de bases de données garantit l'absence de 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 de données principale passe à un rôle de secours et la base de données de secours passe au rôle principal.
    • Le basculement a lieu lorsque la base de données principale est indisponible. Le basculement n'est effectué qu'en cas de panne de la base principale et le basculement aboutit à une transition d'une base de données de secours vers le rôle principal. L'administrateur de base de données peut configurer Oracle Data Guard pour éviter toute perte de données.

Plusieurs étapes manuelles sont nécessaires pour configurer Oracle Data Guard, notamment :

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

Ces étapes manuelles sont largement documentées dans plusieurs documents Oracle. Ce livre de jeux fournit un ensemble de scripts que vous pouvez utiliser pour automatiser la plupart de ces actions. Ces scripts aident à 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 fonctionnalité restore from service Oracle Recovery Manager (RMAN) et Oracle Data Guard Broker.

Avant de commencer

Avant de configurer Oracle Data Guard à l'aide des scripts fournis dans ce document, vérifiez les hypothèses et conditions 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.

    Remarque :

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

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

    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 le fichier spfile peuvent se trouver 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 le fichier 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 Oracle RAC et unique utilisent srvctl).
  • Etant donné qu'Oracle Managed Files est utilisé, 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 de données principale avec l'emplacement de groupe de disques Oracle ASM approprié (par exemple, +DATA ou +RECO).
  • Le propriétaire du logiciel du système de gestion de base de données relationnelle (SGBDR) (par exemple, 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 de données principale est une base de données unique, la base de données de secours est une base de données unique ; si la base de données principale est une base de données Oracle RAC, la base de données 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 instance Oracle RAC comporte 2 noeuds.
  • Les scripts permettent de configurer une base de données de secours pour une base de données principale qui n'a pas encore de base de données de secours.
  • Les scripts permettent également d'ajouter une nouvelle base de données de secours à une instance 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 données de secours est ajoutée à la configuration Data Guard Broker existante.

A propos des fonctionnalités du script

Voici les fonctionnalités des scripts :

  • Les scripts sont idémpotents : ils peuvent être réexécutés en cas d'erreurs.
  • 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.
  • Transparent Data Encryption (TDE) pour les fichiers de base de données est facultatif : les scripts sont valides pour les deux cas (TDE et aucun TDE).

    Remarque :

    Une configuration symétrique sera effectuée : si la base de données principale utilise TDE, la base de données de secours sera configurée avec TDE. Si la base de données principale n'utilise pas TDE, elle n'utilisera pas 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 des répertoires de base Oracle "traditionnels".
  • Les scripts sont valides pour les environnements Oracle RAC et monoinstance (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 site.
  • Les scripts ont été validés pour configurer une instance Oracle Data Guard hybride, dans laquelle la base de données principale est sur site et la base de données de secours est un système de base de données dans Oracle Cloud Infrastructure.

A propos des fichiers de script

Les descriptions des fichiers de script utilisés dans cette solution sont les suivantes :

  • 1_prepare_primary_maa_parameters.sh

    Se connecte à la base de données principale et la configure avec les paramètres Oracle Maximum Availability Architecture (MAA) recommandés pour Oracle Data Guard. Il crée les fichiers de journalisation de secours, il 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 à 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 cryptage réseau s'il n'est pas déjà défini et génère les fichiers tar de sortie contenant le fichier de mots de passe principal et le portefeuille Transparent Data Encryption (TDE) (le cas échéant).

  • create_pw_tar_from_asm_root.sh

    Ce script n'est pas toujours nécessaire. Elle est requise uniquement 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 fonctionnalité restore from service Oracle Recovery Manager (RMAN) et du broker Oracle Data Guard. S'il existe une base de données dans ces hôtes (une base de données de travail ou suite à un échec d'exécution de script précédent), les scripts la supprimeront avant de recréer la nouvelle base de données en tant que base de données 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 données de secours.

A propos des produits et rôles requis

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

Nom du produit : Rôle Requis pour...
Oracle Database : sys exécuter tous les scripts
Hôte Oracle Database (principal) : utilisateur du système d'exploitation oracle avec des droits 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écutez 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

Reportez-vous à Produits, solutions et services Oracle pour obtenir ce dont vous avez besoin.