Database
 sql >> Base de données >  >> RDS >> Database

Configuration de la veille physique Active Data Guard dans l'architecture RAC One Node - Partie 1

Cet article est la première partie d'une série en deux parties qui décrit les étapes de configuration de la veille physique Active Data Guard dans l'architecture RAC One Node.

Présentation

Oracle Data Guard est l'un des principaux composants d'Oracle Database High Availability (HA), un ensemble intégré de solutions, qui aide les organisations à minimiser l'inactivité, planifiée ou non, pour garantir le bon déroulement de leurs affaires. Active Data Guard est une option sous licence pour Oracle Database Enterprise Edition qui élargit les fonctionnalités de base de Data Guard [1] en permettant des ressources avancées, telles que :consultations, rapports, mises à jour de la base de données de secours qui n'affectent pas la base de données principale, récupération automatique des blocs de données corrompus, sauvegardes incrémentielles, entre autres.

Oracle RAC One Node utilise une architecture de disque partagé pour fournir une solution de haute disponibilité de base de données, similaire à Oracle Real Application Clusters (RAC). Contrairement à Oracle RAC, qui exécute plusieurs instances simultanément, Oracle RAC One Node fournit une solution de basculement dans une seule instance, de plus, il peut faciliter l'infrastructure en cluster, en étant facilement mis à jour vers les paramètres Oracle Real Application Clusters avec plusieurs instances.

Environnement

  • La base de données principale utilise Oracle RAC avec 2 nœuds
  • Le mode de protection utilisé sera "Performance maximale" en utilisant le mode "asynchronous redo transport"
  • La fonctionnalité "Fast Start Failover" ne sera pas utilisée.
  • Paramètres de Data Guard Broker

1. Définissez db_unique_name sur la base de données principale :

sqlplus> alter system set db_unique_name='analytics' scope=spfile sid='*';

2. Copiez le "fichier de mot de passe Oracle" sur le serveur de secours :

scp orapwanalytics oracle@hostdr:/u01/app/oracle/product/12.1.0.2/dbhome_1/dbs

3. Dans les instances bancaires des nœuds 1 et 2 du serveur principal, ajoutez des entrées dans listener.ora :

Nœud 1 :

(SID_DESC =(GLOBAL_DBNAME =analytics1_dgmgrl)(SID_NAME =analytics1)(ORACLE_HOME =/u01/app/oracle/product/12.1.0.2/dbhome_1))

Nœud 2 :

 (SID_DESC =(GLOBAL_DBNAME =analytics2_dgmgrl)(SID_NAME =analytics2)(ORACLE_HOME =/u01/app/oracle/product/12.1.0.2/dbhome_1))

4. Dans le serveur de secours, ajoutez une entrée dans listener.ora

 (SID_DESC =(GLOBAL_DBNAME =analytics_DG_DGMGRL)(SID_NAME =analytics_dg)(ORACLE_HOME =/u01/app/oracle/product/12.1.0.2/dbhome_1))

Après ces réglages, l'exécution de la commande « listener reload » est nécessaire pour forcer l'écouteur à relire les entrées listener.ora. Attention! Cette opération affectera la disponibilité de l'auditeur.

5. Ajouter des entrées dans le fichier tnsnames.ora dans la base de données primaire et de secours ;

5.1. Commenter l'ancienne entrée

 #analytics =# (DESCRIPTION =# (ADDRESS =(PROTOCOL =TCP)(HOST =hostdr-pscan1)(PORT =1521))# (CONNECT_DATA =# (SERVER =DEDICATED)# (SERVICE_NAME =analytics)# ) )

5.2. Ajouter de nouvelles entrées :

 analytics =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP)(HOST =hostdr-pscan1)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics)(UR=A)))analytics1 =(DESCRIPTION =(ADRESSE =(PROTOCOLE =TCP)(HOST =hostdr01vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics)(SID =analytics1)(UR=A))) analytics2 =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP)(HOST =hostdr02vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics)(SID =analytics2)(UR=A)) )analytics1_DGMGRL =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP)(HOST =hostdr01vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics_DGMGRL)(UR=A)))analytics2_DGMGRL =( DESCRIPTION =(ADRESSE =(PROTOCOLE =TCP)(HOST =hostdr02vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics_DGMGRL)(UR=A)))

5.3. Entrées du DG :

analytics_DG =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP)(HOST =host01vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics_dg) (UR =A)))analytics_DG_DGMGRL =(DESCRIPTION =(ADRESSE =(PROTOCOLE =TCP)(HOST =host01vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics_dg_dgmgrl)(UR=A)))

6. Testez les nouvelles entrées dans le fichier tnsnames.ora

 tnsping analyticstnsping analytics1tnsping analytics2tnsping analytics_DGtnsping analytics1_DGMGRLtnsping analytics2_DGMGRLtnsping analytics_DG_DGMGRL

7. Activez « Force Logging » et « Archivelog mode » dans la base de données primaire. Remarque :L'instance était déjà configurée en mode archivelog.

 sqlplus> alter database force logging;sqlplus> select force_logging, log_mode from v$database;FORCE_LOGGING LOG_MODE--------------------------- ------------ ------------OUI ARCHIVELOG

8. Vérifiez les paramètres RedoLogs dans la base de données principale. Le script utilisé logfiles.sql est disponible sur oracle-base.com.

9. Ajouter des fichiers journaux de veille.

Pour déterminer le nombre recommandé de redo logs de secours, utilisez la formule suivante [2] :

(nombre maximum de groupes de fichiers journaux +1) * nombre maximum de threads

Ma base de données principale a deux threads et chacun a quatre groupes redo online, par conséquent, nous devrions avoir dix redo logs en attente.

(nombre maximum de groupes de fichiers journaux +1) * nombre maximum de threads =((4 + 1) * 2 =10)

 sqlplus> alter database add standby logfile thread 1 groupe 41 ('+DG_RECO_DR') taille 1024M;sqlplus> alter database add standby logfile thread 2 groupe 42 ('+DG_RECO_DR') taille 1024M;sqlplus> alter database add standby logfile thread 1 groupe 43 ('+DG_RECO_DR') taille 1024M;sqlplus> alter database add standby logfile thread 2 groupe 44 ('+DG_RECO_DR') size 1024M;sqlplus> alter database add standby logfile thread 1 groupe 45 ('+DG_RECO_DR') taille 1024M;sqlplus> alter database add standby logfile thread 2 groupe 46 ("+DG_RECO_DR") taille 1024M;sqlplus> alter database add standby logfile thread 1 groupe 47 ("+DG_RECO_DR") taille 1024M;sqlplus> alter database add standby logfile thread 2 groupe 48 ('+DG_RECO_DR') taille 1024M;sqlplus> alter database add standby logfile thread 2 groupe 49 ('+DG_RECO_DR') size 1024M;sqlplus> alter database add standby logfile thread 2 groupe 50 ('+DG_RECO_DR') taille 1024M ;

10. Dans la base de données principale, créez un pfile qui sera la base des fichiers de paramètres de la base de données de secours.

 créer pfile='/tmp/initanalytics_dg_aux.ora' à partir de spfile ;

11. Dans la base de données de secours, créez le fichier pfile avec les informations du serveur distant. Le moyen le plus simple de créer ce fichier consiste à copier le fichier de paramètres de la base de données principale (élément 10) dans la base de données de secours et à le modifier.

$ cd $ORACLE_HOME/dbs$ vi initanalytics_dg_aux.ora#*.audit_file_dest='/u01/app/oracle/admin/analytics/adump'*.audit_file_dest='/u01/app/oracle/admin/analytics_dg/adump '*.audit_trail='db'#.cluster_database=true*.cluster_database=false*.compatible='12.1.0.2.0'#*.control_files='+DG_DATA_DR/analytics/controlfile/current.1257.954609365','+DG_RECO_DR /analytics/controlfile/current.527.954609365'*.control_files='+DG_DATA/analytics_dg/controlfile/current1.ctl','+DG_RECO/analytics_dg/controlfile/current2.ctl'*.db_block_size=8192#*.db_create_file_dest='+ DG_DATA_DR'*.db_create_file_dest='+DG_DATA'#*.db_create_online_log_dest_1='+DG_DATA_DR'*.db_create_online_log_dest_1='+DG_DATA'#*.db_create_online_log_dest_2='+DG_RECO_DR'*.db_create_online_log_dest_2='*.db_create_online_log_dest_2='*.DG_RECO_dest_2='+DG_RECO *.db_name='analytics'*.db_files=2000#*.db_recovery_file_dest='+DG_RECO_DR'*.db_recovery_file_dest='+DG_RECO'*.db_recovery_file_dest_size=100G#*.db_unique_name='analytics'*.db_unique_name='analytics_dg' 

12. Créez des hiérarchies de répertoires.

12.1. Créez un répertoire pour "audit dump" dans lequel les fichiers et l'audit de la base de données seront créés.

 mkdir -p /u01/app/oracle/admin/analytics_dg/adump

12.2. Dans ASM, créez des répertoires pour le fichier de contrôle et les fichiers de paramètres :

 mkdir +DG_DATA/analytics_DG/mkdir +DG_DATA/analytics_DG/PARAMETERFILEmkdir +DG_DATA/analytics_DG/CONTROLFILEmkdir +DG_DATA/analytics_DG/BROKERCFGmkdir +DG_RECO/analytics_DGmkdir +DG_RECO/analytics_DG/BROKERCFG

13. Créez spfile et pfile dans la base de données de secours

 $ export ORACLE_SID=analytics_dg$ sqlplus / as sysdba

13.1. Démarrez la base de données de secours avec pfile initanalytics_dg_aux.ora et convertissez le fichier de paramètres (pfile) en spfile.

 sqlplus> startup nomount pfile='/u01/app/oracle/product/12.1.0.2/dbhome_1/dbs/initanalytics_dg_aux.ora';sqlplus> create spfile='+DG_DATA/analytics_DG/PARAMETERFILE/spfileanalytics_dg.ora' à partir de pfile='/u01/app/oracle/product/12.1.0.2/dbhome_1/dbs/initanalytics_dg_aux.ora';

13.2. Créez pfile et dans ce fichier, insérez l'entrée suivante :

 echo "spfile='+DG_DATA/analytics_DG/PARAMETERFILE/spfileanalytics_dg.ora'">> initanalytics_dg.ora

13.3. Démarrage de l'instance avec spfile pour la restauration de la base de données postérieure.

$ export ORACLE_SID=analytics_dg$ sqlplus sys as sysdbasqlplus> shutdown immédiat ; sqlplus> startup nomount ;

14. Exécutez la restauration avec le doublon de la base de données ;

 connecter la cible sys/xxxxxx@analytics1 ;connecter l'auxiliaire sys/xxxxxx@analytics_dg_dgmgrl ;RUN {Allouer le disque de type de périphérique du canal pr1 ;Allouer le disque de type de périphérique du canal pr2 ;allouer le disque de type de canal auxiliaire stby1 ;allouer le disque de type de canal auxiliaire stby2 ;DUPLICATE BASE DE DONNÉES CIBLE POUR VEILLE À PARTIR DE LA BASE DE DONNÉES ACTIVE;RELEASE CHANNEL pr1;RELEASE CHANNEL pr2;RELEASE CHANNEL stby1;RELEASE CHANNEL stby2;}

Au prochain post nous continuerons cette saga !

Références

[1] Meilleures pratiques d'Oracle Active Data Guard. Disponible sur :https://www.oracle.com/database/technologies/active-data-guard-12c-best-practice.html

[2] Oracle Database High Availability Best Practices 11g Release 2 (11.2). Disponible sur :https://docs.oracle.com/cd/E24693_01/server.11203/e10803/config_dg.htm

[3] Courtier Data Guard. Disponible sur :https://docs.oracle.com/cd/E11882_01/server.112/e40771/dbpropref.htm#DGBKR3781