- Déployer une topologie de récupération après sinistre multinuage à l'aide du service Oracle Database pour Azure
- Préparer le déploiement de la topologie
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 :
- 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.
- Configurez le réseau pour les systèmes de base de données dans OCI.
- 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.
- Ensuite, dans les deux régions, sélectionnez Créer une connexion d'appairage distant pour créer une connexion d'appairage distant.
- 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.
- 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é".
- 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é.
- 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. - 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 valeurvariables
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.
- À 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
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
- 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
- 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
- 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
- À partir de l'invite de commande (par exemple,
[oracle@ldbuksdr ]$
), notez le statut du programme de licence :lsnrctl status
- Notez les détails de la configuration de base de données :
srvctl config database -d db_unique_name
- Notez les entrées
tns
:cat $ORACLE_HOME/network/admin/tnsnames.ora
- Note : Sortie
sqlnet.ora
:cat $ORACLE_HOME/network/admin/sqlnet.ora
- 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
- 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.
- 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 fichierlistener.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.
Ajoutez l'entrée suivante àlsnrctl status vi listener.ora
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.
L'entrée doit se présenter comme suit (vos entrées pourSID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=DB_UNIQUE_NAME)(ORACLE_HOME=ORACLE_HOME) (SID_NAME = ORACLE SID)))
GLOBAL_DBNAME
,ORACLE_HOME
etSID_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
- Configurez les entrées
tns
.Vous avez besoin d'entrées pour chaque base de données dans les fichierstnsnames.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 fichiertnsnames.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.
- 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.
- À partir de l'invite de commande sqlplus, entrez : :
select * from V$ENCRYPTION_WALLET;
- 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
- 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
- Accédez ensuite à l'invite sqlplus en tant que DBA système :
sqlplus "/ as sysdba"
Et exécutez ces commandes :@rm_dbfiles.sql
exit
- 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
- Enregistrez et exécutez le script :
./files.lst
- À partir de l'invite de commande sqlplus, entrez : :
- 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.- 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) :
Par exemple :sudo cp /tmp/orapwsid $ORACLE_HOME/dbs/orapwsid
La sortie doit ressembler à ceci :sudo ls -ltra /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/orapwdbuks
-rw-r-----1 oracle oinstall 2048 Jul3 13:42 /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/orapwdbuks
- 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) :
La sortie de la base de données principale doit être similaire à la suivante (où orapwsid estmd5sum /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/orapwsid
orapwdbuks
) :
Et pour la base de données de secours :b3895fa6357471f80c6e0f4ac16fdc23 /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/orapwdbuks
b3895fa6357471f80c6e0f4ac16fdc23 /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/orapwdbuks
- 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
- 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) :
- Configurez le module d'écoute statique :
- 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
- 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.
Par exemple, l'entrée doit se présenter comme suit :SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=DB_UNIQUE_NAME)(ORACLE_HOME=ORACLE_HOME) (SID_NAME = ORACLE_SID)))
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)))
- Rechargez le processus d'écoute et vérifiez son statut :
lsnrctl reload
lsnrctl status
- Dans la base de données de secours dans OCI, ajoutez le fichier
- Configurez les entrées
tns
:cd $ORACLE_HOME/network/admin
vi tnsnames.ora
L'entrée dans le fichiertnsnames.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)))