Cet article est la partie 2 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. Vous pouvez trouver la partie 1 ici.
1. Lorsque le processus de duplication de la base de données est terminé (Partie 1 de l'article), ajoutez la base de données de secours dans Clusterware
srvctl add database -d analytics_dg -o /u01/app/oracle/product/12.1.0.2/dbhome_1 -c RACONENODE -p '+DG_DATA/analytics_DG/PARAMETERFILE/spfileanalytics_dg.ora' -r PHYSICAL_STANDBY -s MOUNT -n analytics_dg -e hostdr
2. fermer une base de données
sqlplus> arrêt immédiat ;
3. Copiez "Oracle password file" avec le nouveau nom d'instance "orapwanalyticsdg_1"
cd $ORACLE_HOME/dbscp orapwanalytics_dg orapwanalyticsdg_1
4. Démarrer la base de données
$ srvctl start database -d analytics_dg$ srvctl config database -d analytics_dgDatabase nom unique :analytics_dgDatabase name :analytics_dgOracle home :/u01/app/oracle/product/12.1.0.2/dbhome_1Oracle user :oracleSpfile :+DG_DATA/analytics_DG/PARAMETERFILE /spfileanalytics_dg.oraFichier de mot de passe :Domaine :Options de démarrage :lecture seuleOptions d'arrêt :immédiatRôle de base de données :PHYSICAL_STANDBYRègle de gestion :AUTOMATICPools de serveurs :Groupes de disques :DG_DATA,DG_RECOMount des chemins de point :Services :Type :RACOneNodeOnline timeout de relocalisation :30Préfixe du nom d'instance :analyticsdgServeurs candidats :groupe hostdrOSDBA :groupe sdbaOSOPER :instances soperDatabase :la base de données est gérée par l'administrateur
5. Selon le modèle d'Oracle Restart, l'instance analytics_dg s'appellera analyticsdg_1. Par conséquent, listener.ora doit être mis à jour.
Exécutez la commande "listener reload" afin de forcer l'écouteur à lire à nouveau les entrées "listener.ora". Attention! Cette opération affectera la disponibilité de l'auditeur.
SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME =analytics_dg_dgmgrl)# (SID_NAME =analytics_dg)(SID_NAME =analyticsdg_1)(ORACLE_HOME =/u01/app/oracle/product/12.1.0.2/dbhome_1)))
6. Redo Transport Service sera activé manuellement pour valider les connexions et les paramètres.
Paramètres DB_BLOCK_CHECKSUM , DB_BLOCK_CHECKING et DB_LOST_WRITE_PROTECT sera configuré pour les deux bases de données, principale et de secours, afin de prévenir et de détecter les blocs corrompus.
6.1. Ajuster les paramètres dans la base de données de secours
sqlplus> alter system set log_archive_config='dg_config=(analytics,analytics_dg)' scope=both sid='*';sqlplus> alter system SET log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_ROLES, ALL_LOGFILES) db_unique_name=analytics_dg' scope=both sid='*' ;sqlplus> alter system set log_archive_dest_2='service=analytics LGWR ASYNC NOAFFIRM max_failure=10 max_connections=1 restart=180 valid_for=(online_logfiles,primary_role) db_unique_name=analytics' scope=both sid='* ';sqlplus> alter system set fal_server='analytics' scope=both sid='*';sqlplus> alter system set fal_client='analytics_dg' scope=both sid='*';sqlplus> alter system set log_archive_max_processes=4 scope=les deux sid='*';sqlplus> alter system set standby_file_management='AUTO' scope=both sid='*';sqlplus> alter system set db_file_name_convert='+DG_DATA_DR/analytics','+DG_DATA/analytics_DG','+DG_RECO_DR /analytics','+DG_RECO/analytics_DG' scope=spfile sid='*';sqlplus> alter system set log_file_name_convert='+DG_DATA_DR/ analytics','+DG_DATA/analytics_DG','+DG_RECO_DR/analytics','+DG_RECO/analytics_DG' scope=spfile sid='*';sqlplus> alter system set db_block_checksum=FULL scope=both sid='*';sqlplus> alter system set db_block_checking=MEDIUM scope=both sid='*';sqlplus> alter system set db_lost_write_protect=TYPICAL scope=both sid='*';sqlplus> alter system set log_archive_dest_state_1='enable' scope=both sid='* ';sqlplus> alter system set log_archive_dest_state_2='enable' scope=both sid='*';
6.2. Ajustez les paramètres dans la base de données principale :
sqlplus> alter system set log_archive_config='dg_config=(analytics,analytics_dg)' scope=both sid='*';sqlplus> alter system SET log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_ROLES,ALL_LOGFILES) db_unique_name=analytics' scope=both sid='*' ;sqlplus> alter system set log_archive_dest_2='service=analytics_dg LGWR ASYNC NOAFFIRM max_failure=10 max_connections=1 réouvrir=180 valid_for=(online_logfiles,primary_role) db_unique_name=analytics_dg' scope=both sid='* ';sqlplus> alter system set fal_server='analytics_dg' scope=both sid='*';sqlplus> alter system set fal_client='analytics' scope=both sid='*';sqlplus> alter system set log_archive_max_processes=4 scope=les deux sid='*' ;sqlplus> alter system set standby_file_management='AUTO' scope=both sid='*' ;sqlplus> alter system set db_file_name_convert='+DG_DATA/analytics_DG','+DG_DATA_DR/analytics','+DG_RECO /analytics_DG','+DG_RECO_DR/analytics' scope=spfile sid='*';sqlplus> alter system set log_file_name_convert='+DG_DATA /analytics_DG','+DG_DATA_DR/analytics','+DG_RECO/analytics_DG','+DG_RECO_DR/analytics' scope=spfile sid='*';sqlplus> alter system set db_block_checksum=TYPICAL scope=both sid='*' ; sqlplus> alter system set db_block_checking=MEDIUM scope=both sid='*';sqlplus> alter system set db_lost_write_protect=TYPICAL scope=both sid='*';sqlplus> alter system set log_archive_dest_state_1='enable' scope=both sid=' *' ;sqlplus> alter system set log_archive_dest_state_2='enable' scope=both sid='*';
6.3. L'attribut "status" de Primary et Standby doit renvoyer "VALID"
sqlplus> select dest_id,status,destination ,error from v$archive_dest where dest_id <=5; ID DB_status Archive_dest Erreur---------- --------- --------------------------- -- -------1 VALID USE_DB_RECOVERY_FILE_DEST2 VALID analytics_dg3 INACTIVE4 INACTIVE5 INACTIVEsqlplus> sélectionnez dest_id,status,database_mode,recovery_mode à partir de v$archive_dest_status où status <> 'INACTIF'; DEST_ID STATUT DATABASE_MODE RECOVERY_MODE---------- --------- --------------- ------------ -----------1 VALID OPEN IDLE2 VALID MOUNTED-STANDBY IDLE
6.4. Démarrer manuellement Rétablir Appliquer :
sqlplus> alter database récupérer la base de données de secours gérée à l'aide de la déconnexion du fichier journal actuel ;
6.5. Synchronisation entre la validation de la base de données primaire et de secours
sqlplus> select * from v$archive_gap;sqlplus> select name, value, datum_time, time_computed from v$dataguard_stats where name like 'apply lag';sqlplus> select file_type, number_of_files, percent_space_used from v$recovery_area_usage;sqlplus> select current_scn from v$database;sqlplus> select sequence#, first_time, applique from v$archived_log trier par sequence#;
6.6. Arrêtez Redo Apply avant de configurer Data Guard Broker
sqlplus> modifier la base de données récupérer la base de données de secours gérée annuler;Base de données modifiée.
7. Configurer Data Guard Broker dans la base de données principale et de secours
Remarque :les fichiers de paramètres Data Guard seront créés dans ASM dans différents groupes de disques :dg_broker_config_file1 et dg_broker_config_file2
7.1. Dans la base de données principale :
sqlplus> alter system set dg_broker_config_file1 ='+DG_DATA_DR/analytics/BROKERCFG/brokeranalytics1.dat' scope=both sid='*';sqlplus> alter system set dg_broker_config_file2 ='+DG_RECO_DR/analytics/BROKERCFG/brokeranalytics2.dat' scope=both sid='*';sqlplus> alter system set log_archive_dest_2='' scope=both sid='*';sqlplus> alter system set DG_BROKER_START=FALSE scope=both sid='*';sqlplus> alter system set DG_BROKER_START =TRUE portée=les deux sid='*';
7.2. Dans la base de données de secours :
sqlplus> alter system set dg_broker_config_file1 ='+DG_DATA/analytics_DG/BROKERCFG/brokeranalytics_dg1.dat' scope=both sid='*';sqlplus> alter system set dg_broker_config_file2 ='+DG_RECO/analytics_DG/BROKERCFG/brokeranalytics_dg2.dat' scope=both sid='*';sqlplus> alter system set log_archive_dest_2='' scope=both sid='*';sqlplus> alter system set DG_BROKER_START=FALSE scope=both sid='*';sqlplus> alter system set DG_BROKER_START =TRUE portée=les deux sid='*';
7.3. Paramètres du courtier :
$ dgmgrldgmgrl> connect sys/xxxxx@analyticsConnected as SYSDBA.dgmgrl> create configuration 'analytics_cfg' as primary database is 'analytics' connect identifier is analytics;Configuration "analytics_cfg" created with primary database "analytics"dgmgrl> add database ' analytics_dg' en tant qu'identifiant de connexion est analytics_dg maintenu comme physique ; la base de données « analytics_dg » a été ajoutéedgmgrl> modifier la base de données « analytics_dg » définir la propriété logxptmode=async ; la propriété « logxptmode » mise à jourdgmgrl> modifier la configuration définir le mode de protection sur MAXPERFORMANCE ;Succeeded.dgmgrl> activer la configuration ; Activé.
Utilisez la commande AFFICHER LA CONFIGURATION pour afficher un bref résumé des paramètres.
dgmgrl> show configurationConfiguration - analytics_cfgProtection Mode :MaxPerformanceDatabases:analytics - Primary databaseanalytics_dg - Physical standby databaseFast-Start Failover :DISABLEDConfiguration Status:SUCCESS
7.4. Valider les paramètres avec des commandes
dgmgrl> afficher la base de données détaillée 'analytics_dg' 'RecvQEntries';dgmgrl> afficher la base de données détaillée 'analytics';dgmgrl> afficher la base de données détaillée 'analytics_dg' ;
Nœud 1 :
sqlplus> sélectionnez NAME,OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,DATABASE_ROLE depuis v$database;NAME OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL DATABASE_ROLE--------- ---------------- ---- -------------------- -------------------- ------ -----analytics LECTURE ECRITURE PERFORMANCES MAXIMALES PERFORMANCES MAXIMALES PRIMAIRE
Nœud 2 :
sqlplus> sélectionnez NAME,OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,DATABASE_ROLE depuis v$database;NAME OPEN_MODE PROTECTION_MODE PROTECTION_LEVE DATABASE_ROLE--------- ---------------- ---- -------------------- -------------------- ------ -----analytics LECTURE ECRITURE PERFORMANCES MAXIMALES PERFORMANCES MAXIMALES PRIMAIRE
BD de secours :
sqlplus> sélectionnez NAME,OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,DATABASE_ROLE depuis v$database;NAME OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL DATABASE_ROLE--------- ---------------- -------------------- -------------------- ---------- ------analytics MONTÉ PERFORMANCES MAXIMALES PERFORMANCES MAXIMALES VEILLE PHYSIQUE
8. Les ajustements sur Broker seront effectués sur les paramètres "MaxConnections", "TransportDisconnectedThreshold" et "TransportLagThreshold" [1]
La propriété « MaxConnections » spécifie le nombre de processus ARCn qui seront utilisés en parallèle pour transférer les données d'un fichier de journalisation vers le site distant lorsqu'il y a un GAP dans le processus. Si MaxConnections est défini avec une valeur supérieure à 1, les services de transport redo utilisent plusieurs processus ARCn pour transférer les données d'un fichier journal redo vers le standby.
La propriété « TransportDisconnectedThreshold » peut être utilisée pour créer un état d'avertissement pour une attente logique ou physique ou une capture instantanée lorsque la dernière communication de la base de données primaire dépasse la valeur spécifiée de la propriété. La valeur de la propriété est exprimée en secondes.
La propriété "TransportLagThreshold" peut être utilisée pour créer un état d'avertissement pour une attente logique ou physique ou une capture instantanée lorsque le délai de transport de la base de données dépasse la valeur spécifiée de la propriété. La valeur de la propriété est exprimée en secondes.
dgmgrl> modifier la base de données 'analytics' SET PROPERTY 'MaxConnections'=4;Propriété "MaxConnections" updateddgmgrl> modifier la base de données 'analytics' SET PROPERTY TransportDisconnectedThreshold='180';Propriété "transportdisconnectedthreshold" updateddgmgrl> modifier la base de données 'analytics' SET PROPERTY TransportLagThreshold='900';Propriété "transportlagthreshold" updateddgmgrl> modifier la base de données 'analytics_dg' SET PROPERTY 'MaxConnections'=4;Propriété "MaxConnections" updateddgmgrl> modifier la base de données 'analytics_dg' SET PROPERTY TransportDisconnectedThreshold='180';Propriété "transportdisconnectedthreshold" updateddgmgrl> modifier la base de données 'analytics_dg' SET PROPERTY TransportLagThreshold='900';Propriété "transportlagthreshold" mise à jour
9. Modifier les journaux d'archivage de la politique d'exclusion dans la base de données principale.
rman> CONFIGURER LA POLITIQUE DE SUPPRESSION D'ARCHIVELOG SUR EXPÉDIÉ EN VEILLE ;
Activation Dataguard active
10. Arrêtez de refaire une demande dans le courtier
$ dgmgrldgmgrl> connecter sysdgmgrl> modifier la base de données 'analytics_dg' définir l'état ='apply-off';dgmgrl> afficher la base de données 'analytics_dg'
11. Ouvrez l'instance de secours en mode lecture seule.
sqlplus> modifier la base de données ouverte en lecture seule ;
12. Commencez à refaire une demande dans le courtier
$ dgmgrldgmgrl> connecter sysdgmgrl> modifier la base de données 'analytics_dg' définir l'état ='apply-on';dgmgrl> afficher la base de données 'analytics_dg'
Références
[1] Courtier Data Guard. Disponible sur :https://docs.oracle.com/cd/E11882_01/server.112/e40771/dbpropref.htm#DGBKR3781