Préparer le déploiement de la topologie

Pour que Data Guard fonctionne, les deux bases de données des différentes régions doivent communiquer. Par conséquent, vous devez configurer une connexion d'appairage à distance entre les deux régions dans OCI via leurs passerelles de routage dynamique respectives. Les passerelles de routage dynamique sont créées par la configuration OracleDB pour Azure. Vous devez donc uniquement établir une connexion d'appairage à distance entre les passerelles de routage dynamique existantes.

Configuration du réseau

Pour configurer votre réseau, procédez comme suit :

  1. Configurez la connectivité réseau pour la machine virtuelle Azure et OracleDB pour les systèmes de base de données Azure.
    • Assurez-vous que la clé privée SSH du système Oracle DB est disponible sur la machine virtuelle Azure.
    • Testez la connectivité entre les machines virtuelles Azure et OracleDB pour les systèmes de base de données Azure.
  2. Configurez le réseau pour les systèmes de base de données dans OCI.
    1. Accédez d'abord aux détails du VCN du système de base de données dans la région 1, sélectionnez Attachements de passerelle de routage dynamique, puis le nom du DRG pour charger les détails du DRG dans la région 1. Sélectionnez ensuite Attachements de connexion d'appairage à distance. Dans une deuxième fenêtre de navigateur, faites exactement la même chose pour la région 2.
    2. Ensuite, dans les deux régions, sélectionnez Créer une connexion d'appairage à distance pour créer une connexion d'appairage à distance.
    3. Une fois les deux connexions d'appairage à distance créées, sélectionnez le nom de la connexion d'appairage à distance dans la région 1 et copiez l'OCID.
    4. Dans la région 2, sélectionnez le nom RPC et sélectionnez Etablir une connexion. Sélectionnez le nom de région correct pour la région 1 (à laquelle nous sommes connectés) et fournissez l'OCID de la connexion d'appairage à distance dans la région 1, que vous avez copié à l'étape précédente. Quelques instants après l'établissement de la connexion, le statut du pair doit être Appairé.
    5. Autorisez ensuite le trafic entre les réseaux cloud virtuels des deux régions. Accédez aux détails du VCN et sélectionnez la liste de sécurité par défaut. Sélectionnez Ajouter des règles entrantes pour autoriser le trafic provenant de la plage CIDR du VCN opposé.
    6. Enfin, connectez-vous à partir des machines virtuelles d'Azure aux systèmes de base de données OCI Base respectifs. Modifiez le fichier tnsnames.ora pour les deux systèmes de base de données Base afin de disposer d'une connexion à l'autre base de données.
    7. Vérifiez que tnsping fonctionne correctement entre les deux systèmes de base de données et la base de données opposée.

Configuration de la récupération après sinistre d'Oracle Database pour Azure

Pour configurer la base de données Oracle pour la configuration de récupération après sinistre Azure, vous devez préparer une base de données principale et une base de données secondaire, comme décrit ci-dessous.

Remarques :

Cliquez sur Copier pour enregistrer l'exemple de commande dans le presse-papiers et le coller dans votre ligne de commande. Veillez à remplacer n'importe quel élément variables par des valeurs propres à votre implémentation.

Préparer la base de données principale

Pour préparer la base de données principale, vous devez configurer les processus d'écoute statiques, mettre à jour le fichier tnsnames.ora et configurer divers paramètres de base de données.

  1. A partir de l'invite SQL>, pour vérifier les informations suivantes :
    • Vérifiez que le flashback de base de données est activé.
    • Vérifier que la journalisation de la base de données est activée
    • Vérifier que la base de données est en mode archive log
    • Vérification de l'ouverture de la base de données
    • Vérifier que la base de données a le rôle de base de données principale
    exécutez la commande suivante :
    select log_mode, FORCE_LOGGING, FLASHBACK_ON, OPEN_MODE, DATABASE_ROLE from v$database ;
    La sortie doit ressembler à ceci :
    LOG_MODE              FORCE_LOGGING               FLASHBACK_ON               OPEN_MODE                 DATABASE_ROLE
    ----------------      ------------------------   ----------------------     --------------------        -----------------------
    ARCHIVELOG            YES                         YES                        READ WRITE                  PRIMARY
  2. Vérifiez que la gestion automatique des fichiers de secours est définie sur Auto en exécutant la commande suivante :
    show parameter standby_file_management
    La sortie doit ressembler à ceci :
    NAME                                          TYPE          VALUE
    ------------------------------------          -----------  ----------
    standby_file_management                       string       AUTO
  3. Définissez les fichiers de configuration du broker :
    show parameter dg_broker_config_file1;
    La sortie doit ressembler à ceci :
    NAME                                          TYPE          VALUE
    ------------------------------------         ----------- ------------------------------
    dg_broker_config_file1                        string        /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/dr1dbuks_898_lhr.dat
    

    Puis entrez la commande suivante :

    show parameter dg_broker_config_file2;
    La sortie doit ressembler à ceci :
    
    NAME                                                     TYPE          VALUE
    ------------------------------------         ----------- ------------------------------
    dg_broker_config_file2                             string          /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/dr2dbuks_898_lhr.dat
  4. Activez le broker Data Guard :
    show parameter dg_broker_start
    La sortie doit ressembler à ceci :
    NAME                                             TYPE         VALUE
    ------------------------------------            ----------- --------------
    dg_broker_start                                  boolean      FALSE
    Entrez ensuite les commandes suivantes :
    alter system set dg_broker_start=true scope=both;
    
    show parameter dg_broker_start
    La sortie doit ressembler à ceci :
    NAME                                             TYPE        VALUE
    ------------------------------------            ----------- --------------
    dg_broker_start                                  boolean     TRUE
  5. A partir de l'invite de commande (par exemple, [oracle@ldbuksdr ]$), notez le statut du listerner :
    lsnrctl status
  6. Notez les détails de configuration de la base de données :
    srvctl config database -d db_unique_name
  7. Notez les entrées tns :
    cat $ORACLE_HOME/network/admin/tnsnames.ora
  8. Notez la sortie sqlnet.ora :
    cat $ORACLE_HOME/network/admin/sqlnet.ora
  9. Copiez le fichier de mots de passe vers le système de base de données de secours à l'emplacement /tmp en saisissant les commandes suivantes :
    cd .ssh
    scp -i private_key /tmp/orapw<sid> opc@ip_standby_vm:/tmp/orapwsid   
  10. Localisez et copiez les fichiers de portefeuille vers le système de base de données de secours à l'emplacement /tmp :
    select CON_ID, WRL_PARAMETER, WRL_TYPE, STATUS, WALLET_TYPE from V$ENCRYPTION_WALLET;
    La sortie doit ressembler à ceci :
    CON_ID         WRL_PARAMETER                                                                      STATUS       WALLET_TYPE
    ----------    ------------------------------------------------------------------------------     ------------  ------------ ----------------------------
    1              /opt/oracle/dcs/commonstore/wallets/dbuks_898_lhr/tde/                             OPEN          AUTOLOGIN
    2                                                                                                 OPEN          AUTOLOGIN
    3                                                                                                 OPEN          AUTOLOGIN
    
    Entrez ensuite :
    cd /opt/oracle/dcs/commonstore/wallets/db_unique_name/tde
    ls -ltra
    
    Le résultat doit se présenter comme suit :
    -rw------- 1 oracle asmadmin  5467 Jun 19 18:59 ewallet.p12
    -rw------- 1 oracle asmadmin  5512 Jun 19 18:59 cwallet.sso
    
    Entrez ensuite les commandes suivantes (où db_unique_name est le nom unique de la base de données du portefeuille) :
    
    [oracle@ ~]$ cp /opt/oracle/dcs/commonstore/wallets/db_unique_name/tde/ewallet.p12/tmp/cwallet.p12
    cp /opt/oracle/dcs/commonstore/wallets/db_unique_name/tde/cwallet.sso/tmp/cwallet.sso
    chmod 777 /tmp/ewallet.p12
    chmod 777 /tmp/cwallet.sso
    scp -i private_key /tmp/ewallet.p12 opc@ip_standby_vm:/tmp/ewallet.p12
    scp -i private_key /tmp/cwallet.sso opc@ip_standby_vm:/tmp/cwallet.sso.
  11. Configurez le processus d'écoute statique.
    Un processus d'écoute statique est requis pour l'instanciation initiale de la base de données de secours. Lorsqu'une base de données est arrêtée, un processus d'écoute statique active une connexion distante à une instance, ce qui vous permet d'utiliser Oracle Data Guard pour démarrer l'instance. Assurez-vous qu'il n'y a aucun saut de ligne ou espace dans les fichiers listener.ora.

    Sur la base de données principale, ajoutez le fichier SID_LIST_LISTENER dans le fichier listener.ora pour inclure le nom unique de la base de données, le répertoire de base Oracle et l'identificateur système (SID) Oracle de la base de données principale.

    lsnrctl status 
    vi listener.ora 
    Ajoutez l'entrée suivante à listener.ora, où :
    • DB_UNIQUE_NAME est le nom unique de la base de données principale.
    • ORACLE_HOME est le répertoire de base Oracle local de la base de données principale.
    • ORACLE SID est le SID de la base de données principale.
    SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=DB_UNIQUE_NAME)(ORACLE_HOME=ORACLE_HOME) 
    (SID_NAME = ORACLE SID)))
    L'entrée doit ressembler à ce qui suit (vos entrées pour GLOBAL_DBNAME, ORACLE_HOME et SID_NAME varient) :
    SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=dbuks_898_lhr.odsp129521.cvcn.oraclevcn.com)
    (ORACLE_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1)(SID_NAME=dbuks)))
    Rechargez le processus d'écoute et vérifiez son statut.
    lsnrctl reload
    lsnrctl status
  12. Configurez les entrées tns.
    Vous avez besoin d'entrées pour chaque base de données dans les fichiers tnsnames.ora principal et de secours pour garantir un transport correct des informations de journalisation. Les adresses IP sont utilisées car il n'y a pas de DNS entre les bases de données pour résoudre les noms de serveur en adresses IP. Utilisez l'exemple suivant pour remplacer les valeurs pertinentes pour la configuration. Les configurations Oracle Real Application Clusters (Oracle RAC) ne peuvent pas résoudre le nom du processus d'écoute d'analyse. Par conséquent, vous devez utiliser une liste d'adresses pour définir tous les noeuds. Ceux-ci seront ajoutés ultérieurement. L'instance initiale ne doit répertorier qu'une seule adresse IP dans les entrées tns pour garantir qu'Oracle Recovery Manager (RMAN) se connecte toujours aux mêmes noeuds.
    [oracle@~]$ cd $ORACLE_HOME/network/admin 
    [oracle@~]$ vi tnsnames.ora
    L'entrée dans le fichier tnsnames.ora doit ressembler à ce qui suit :
    DBUKS_R2J_AMS=(DESCRIPTION=(SDU=65536)(RECV_BUF_SIZE=134217728)(SEND_BUF_SIZE=134217728)(ADDRESS_LIST=(FAILOVER=on)(CONNECT_TIMEOUT=3)
    (RETRY_COUNT=3)(ADDRESS=(PROTOCOL=TCP)(HOST=10.91.0.177)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)
    (SERVICE_NAME=dbuks_r2j_ams.odsp083156.cvcn.oraclevcn.com)(UR=A))) 
    
    DBUKS_898_LHR=(DESCRIPTION=(SDU=65535)(RECV_BUF_SIZE=134217728)(SEND_BUF_SIZE=134217728)(ADDRESS_LIST=(FAILOVER=on)(CONNECT_TIMEOUT=3)
    (RETRY_COUNT=3)(ADDRESS=(PROTOCOL=TCP)(HOST=10.90.0.246)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)
    (SERVICE_NAME=dbuks_898_lhr.odsp129521.cvcn.oraclevcn.com)(UR=A)))

Préparation de la base de données de secours

Ensuite, confondez la base de données de secours.

  1. Supprimez manuellement la base de données créée par les outils Oracle Database pour Azure.
    Avant de supprimer la base de données de secours, enregistrez l'élément db_unique_name en cours et notez l'emplacement du portefeuille tel qu'il sera utilisé ultérieurement. La requête suivante fournit des détails sur l'emplacement du portefeuille.
    1. A l'invite de commande sqlplus, saisissez :
      select * from V$ENCRYPTION_WALLET; 
    2. Préparez ensuite le script rm_dbfiles.sql pour enlever les fichiers liés à la base de données :
      srvctl config database -d db_unique_name
    3. Exécutez le script suivant pour arrêter la base de données que vous créez en tant que base de données de secours et enlever les fichiers de base de données :
      vi rm_dbfiles.sql 
      set heading off linesize 999 pagesize 0 feedback off trimspool on 
      spool /home/oracle/demo/files.lst 
      select 'asmcmd rm '||name from v$datafile union all select 'asmcmd rm '||name from v$tempfile union all select 'asmcmd rm '||member from v$logfile; 
      spool off 
      create pfile='/home/oracle/demo/ORACLE_UNQNAME.pfile' from spfile; 
      exit
      
    4. Accédez ensuite à l'invite sqlplus en tant qu'administrateur de base de données système :
      sqlplus "/ as sysdba"
      Et exécutez les commandes suivantes :
      @rm_dbfiles.sql
      exit
    5. Accordez ensuite le droit de lecture, d'écriture et d'exécution (où db_unique_name est le nom unique de la base de données concernée) :
      chmod 777 files.lst
      srvctl stop database -d db_unique_name
    6. Sauvegardez et exécutez le script :
      ./files.lst 
    Tous les fichiers de la base de données de démarrage ont été supprimés.
  2. Copiez le fichier de mots de passe et les fichiers de portefeuille reçus dans /tmp de la base de données principale vers les emplacements respectifs sur le système de base de données de base de données de secours.
    1. Copiez le fichier de mots de passe de base de données et les fichiers de portefeuille reçus dans /tmp de la base de données principale vers les emplacements respectifs sur le système de base de données de base de données de secours (où orapwsid est le mot de passe SID) :
      sudo cp /tmp/orapwsid $ORACLE_HOME/dbs/orapwsid 
      Exemple :
      sudo ls -ltra /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/orapwdbuks 
      La sortie doit ressembler à ce qui suit :
      
      -rw-r-----1 oracle oinstall 2048 Jul3 13:42 /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/orapwdbuks
    2. Vérifiez que la sortie md5sum du fichier de mots de passe correspond sur les bases principale et de secours (où orapwsid est le mot de passe SID) :
      md5sum /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/orapwsid 
      La sortie de la base de données principale doit se présenter comme suit (où orapwsid est orapwdbuks) :
      
      b3895fa6357471f80c6e0f4ac16fdc23 /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/orapwdbuks 
      
      Et pour la base de données de secours :
      
      b3895fa6357471f80c6e0f4ac16fdc23 /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/orapwdbuks
    3. Enlevez les fichiers de portefeuille existants et copiez les fichiers de portefeuille de /tmp vers l'emplacement TDE (où db_unique_name est le nom unique de la base de données affectée) :
      [oracle@ ~]$ cd /opt/oracle/dcs/commonstore/wallets/db_unique_name/tde/
      rm ewallet.p12 cwallet.sso
      sudo cp /tmp/ewallet.p12 /opt/oracle/dcs/commonstore/wallets/db_unique_name/tde/ewallet.p12
      sudo cp /tmp/cwallet.sso /opt/oracle/dcs/commonstore/wallets/db_unique_name/tde/cwallet.ss
      chown oracle:asmadmin /opt/oracle/dcs/commonstore/wallets/db_unique_name/tde/ewallet.p12
      sudo chown oracle:asmadmin /opt/oracle/dcs/commonstore/wallets/db_unique_name/tde/cwallet.sso
  3. Configurez le processus d'écoute statique :
    1. Sur la base de données de secours dans OCI, ajoutez le fichier SID_LIST_LISTENER pour inclure le nom unique de la base de données, le répertoire de base Oracle d'OCI et l'identificateur système (SID) Oracle de la base de données principale.
      lsnrctl status
      vi listener.ora
    2. Ajoutez l'entrée suivante au fichier listener.ora, où :
      • DB_UNIQUE_NAME est le nom de la base de données principale.
      • ORACLE_HOME est le répertoire de base Oracle local de la base de données principale.
      • ORACLE SID est le SID de la base de données principale.
       SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=DB_UNIQUE_NAME)(ORACLE_HOME=ORACLE_HOME) 
      (SID_NAME = ORACLE_SID)))
      Par exemple, l'entrée doit se présenter comme suit :
      SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME= dbuks_r2j_ams. odsp083156.cvcn.oraclevcn.com)
      (ORACLE_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1)(SID_NAME=dbuks))) 
    3. Rechargez le processus d'écoute et vérifiez le statut :
      lsnrctl reload 
      lsnrctl status
  4. Configurez les entrées tns :
    cd $ORACLE_HOME/network/admin
    vi tnsnames.ora
    L'entrée dans le fichier tnsnames.ora doit ressembler à ce qui suit :
     DBUKS_R2J_AMS=(DESCRIPTION=(SDU=65536)(RECV_BUF_SIZE=134217728)(SEND_BUF_SIZE=134217728)(ADDRESS_LIST=(FAILOVER=on)(CONNECT_TIMEOUT=3)
    (RETRY_COUNT=3)(ADDRESS=(PROTOCOL=TCP)(HOST=10.91.0.177)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)
    (SERVICE_NAME=dbuks_r2j_ams.odsp083156.cvcn.oraclevcn.com)(UR=A))) 
    
    DBUKS_898_LHR=(DESCRIPTION=(SDU=65535)(RECV_BUF_SIZE=134217728)(SEND_BUF_SIZE=134217728)(ADDRESS_LIST=(FAILOVER=on)(CONNECT_TIMEOUT=3)
    (RETRY_COUNT=3)(ADDRESS=(PROTOCOL=TCP)(HOST=10.90.0.246)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)
    (SERVICE_NAME=dbuks_898_lhr.odsp129521.cvcn.oraclevcn.com)(UR=A)))