- Déployer une topologie de récupération après sinistre multicloud à l'aide d'Oracle Database Service 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 à 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 :
- 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.
- Configurez le réseau pour les systèmes de base de données dans OCI.
- 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.
- Ensuite, dans les deux régions, sélectionnez Créer une connexion d'appairage à distance pour créer une connexion d'appairage à distance.
- 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.
- 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é.
- 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é.
- 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. - 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émentvariables
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.
- 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
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 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
- 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
- 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
- A partir de l'invite de commande (par exemple,
[oracle@ldbuksdr ]$
), notez le statut du listerner :lsnrctl status
- Notez les détails de configuration de la base de données :
srvctl config database -d db_unique_name
- Notez les entrées
tns
:cat $ORACLE_HOME/network/admin/tnsnames.ora
- Notez la sortie
sqlnet.ora
:cat $ORACLE_HOME/network/admin/sqlnet.ora
- 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
- 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.
- 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 fichierlistener.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.
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 le SID de la base de données principale.
L'entrée doit ressembler à ce qui 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 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 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éparation de la base de données de secours
Ensuite, confondez la base de données de secours.
- 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.
- A l'invite de commande sqlplus, saisissez :
select * from V$ENCRYPTION_WALLET;
- 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
- 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
- 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
- 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
- Sauvegardez et exécutez le script :
./files.lst
- A l'invite de commande sqlplus, saisissez :
- 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.- 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) :
Exemple :sudo cp /tmp/orapwsid $ORACLE_HOME/dbs/orapwsid
La sortie doit ressembler à ce qui suit :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 sur les bases principale et de secours (où orapwsid est le mot de passe SID) :
La sortie de la base de données principale doit se présenter comme suit (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
- 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
- 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) :
- Configurez le processus d'écoute statique :
- 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
- 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.
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 le statut :
lsnrctl reload
lsnrctl status
- Sur 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)))