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 distant entre les deux régions d'OCI au moyen de leurs passerelles DRG respectives. Les passerelles DRG sont créées par la configuration OracleDB pour Azure. Vous n'avez donc qu'à établir une connexion d'appairage distant entre les passerelles DRG existantes.

Configurer le réseau

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

  1. Configurer 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. Tout d'abord, naviguez jusqu'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 de la passerelle DRG pour charger les détails de la passerelle DRG dans la région 1. Sélectionnez ensuite Attachements de connexion d'appairage distant. 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 distant pour créer une connexion d'appairage distant.
    3. Une fois les deux connexions d'appairage distant créées, sélectionnez le nom de la connexion d'appairage distant dans la région 1 et copiez l'OCID.
    4. Dans la région 2, sélectionnez le nom de la connexion d'appairage distant et sélectionnez Établir la connexion. Sélectionnez le nom de région correct pour la région 1 (où nous sommes en train de nous connecter) et indiquez l'OCID de la connexion d'appairage distant 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 de pair doit être "Appelé".
    5. Ensuite, autorisez le trafic entre les réseaux en nuage virtuels dans les deux régions. Naviguez jusqu'aux détails du VCN et sélectionnez la liste de sécurité par défaut. Sélectionnez Ajouter des règles de trafic entrant pour autoriser le trafic à partir de l'intervalle CIDR du VCN opposé.
    6. Enfin, connectez-vous à partir des machines virtuelles d'Azure aux systèmes de base de données de base OCI respectifs. Modifiez le fichier tnsnames.ora pour que les deux systèmes de base de données de base aient une connexion à l'autre base de données.
    7. Vérifiez que tnsping fonctionne correctement des deux systèmes de base de données vers la base de données opposée.

Configurer la configuration Oracle Database pour Azure DR

Pour configurer la base de données Oracle pour la configuration Azure DR, vous devez préparer une base de données principale et une base de données secondaire, comme décrit ci-dessous.

Note :

Cliquez sur Copier pour enregistrer l'exemple de commande dans le presse-papiers et le coller dans votre ligne de commande. Veillez à remplacer toute valeur variables par des valeurs propres à votre mise en oeuvre.

Préparer la base principale

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

  1. À partir de l'invite SQL>, pour vérifier les informations suivantes :
    • Vérifier que le flashback de la base de données est activé
    • Vérifiez que l'option Forcer la journalisation de la base de données est activée
    • Vérifiez que la base de données est en mode d'archivage des journaux
    • Vérifier que la base de données est en mode d'ouverture
    • Vérifiez que la base de données est dans le rôle de la base principale
    exécuter 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 réglée à Auto en exécutant cette commande :
    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
    

    Entrez ensuite cette commande :

    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 courtier Data Guard :
    show parameter dg_broker_start
    La sortie doit ressembler à ceci :
    NAME                                             TYPE         VALUE
    ------------------------------------            ----------- --------------
    dg_broker_start                                  boolean      FALSE
    Entrez ensuite ces commandes :
    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. À partir de l'invite de commande (par exemple, [oracle@ldbuksdr ]$), notez le statut du programme de licence :
    lsnrctl status
  6. Notez les détails de la configuration de 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. Note : Sortie sqlnet.ora :
    cat $ORACLE_HOME/network/admin/sqlnet.ora
  9. Copiez le fichier de mots de passe dans le système de base de données de secours à l'emplacement /tmp en entrant 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 dans 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
    
    Ensuite, entrez :
    cd /opt/oracle/dcs/commonstore/wallets/db_unique_name/tde
    ls -ltra
    
    Vous pouvez voir ce qui 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 ces commandes (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 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 pas de sauts de ligne ou d'espaces blancs dans les fichiers listener.ora.

    Dans 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 de système Oracle (IDS) 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 l'IDS 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 se présenter comme 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 approprié des données 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 de balayage. Par conséquent, vous devez utiliser une liste d'adresses pour définir tous les noeuds. Ceux-ci seront ajoutés plus tard. 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éparer la base de données de secours

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

  1. Supprimer 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 le fichier db_unique_name courant et notez l'emplacement du portefeuille, qui sera utilisé ultérieurement. L'interrogation suivante fournit des détails sur l'emplacement du portefeuille.
    1. À partir de l'invite de commande sqlplus, entrez : :
      select * from V$ENCRYPTION_WALLET; 
    2. Ensuite, préparez le script rm_dbfiles.sql pour supprimer 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 secours et supprimer 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 que DBA système :
      sqlplus "/ as sysdba"
      Et exécutez ces commandes :
      @rm_dbfiles.sql
      exit
    5. Ensuite, accordez l'autorisation 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. Enregistrez et exécutez le script :
      ./files.lst 
    Tous les fichiers de la base de données de départ 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 du système de base de données de secours.
    1. Copiez le fichier de mot de passe de la base de données et les fichiers de portefeuille reçus dans /tmp de l'emplacement principal vers les emplacements respectifs du système de base de données de secours (où orapwsid est le mot de passe SID) :
      sudo cp /tmp/orapwsid $ORACLE_HOME/dbs/orapwsid 
      Par exemple :
      sudo ls -ltra /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/orapwdbuks 
      La sortie doit ressembler à ceci :
      
      -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 à celle de la base principale et de la base 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 être similaire à la suivante (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. Supprimez 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 concerné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 module d'écoute statique :
    1. Dans 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 de système Oracle (IDS) 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 l'IDS 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 son 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)))