Introduction
Ce document décrit une procédure étape par étape pour résoudre le problème de réplication ou de synchronisation de la base de données dans Prime Network en reconstruisant la base de données de secours à partir de la base de données principale.
Conditions préalables
Conditions requises
Cisco vous recommande de prendre connaissance des rubriques suivantes :
- Utilisez cette procédure pour reconstruire la base de données secondaire uniquement si SWITCHOVER_STATUS de la base de données principale se trouve dans l'ÉCART NON RÉSOLU.
- Assurez-vous que la base de données principale est en lecture seule et que la base de données secondaire est en lecture seule ou en lecture seule avec les modes APPLY.
- Assurez-vous d'identifier la passerelle/base de données Prime Central principale et secondaire correcte.
Components Used
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
- Prime Central version 1.2 et ultérieure
- Version Oracle Database 11G
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Informations générales
1. Utilisez cette commande pour connaître l'état switchover_status de la base de données principale :
SQL> select switchover_status from v$database
SWITCHOVER_STATUS
--------------------
UNRESOLVABLE GAP
Note: La commutation Prime Central Geo HA échoue brusquement, laissant le système Prime Central GEO HA et/ou l'état du rôle de base de données corrompu (primay ou les deux en veille) et vous devez ensuite reconstruire le système principal ou secondaire en fonction du dernier état actif/en veille.
Note: Dans tous les autres cas, ouvrez SR avec le TAC Cisco pour résoudre le problème de réplication de base de données.
2. Utilisez cette commande pour connaître le mode actuel de la base de données principale et secondaire :
SQL> select open_mode from v$database;
3. Utilisez cette commande pour connaître ORACLE_SID de la base de données principale et secondaire :
Sur la passerelle principale de l'utilisateur oracle :
echo $ORACLE_SID -> output should be “primedb”
Sur la passerelle secondaire de l'utilisateur oracle :
echo $ORACLE_SID -> output should be “primstdb”
Problème
Le commutateur Prime Central GEO HA et/ou la procédure de basculement/re-basculement échouent lorsque les bases de données Active et Standby ne sont plus synchronisées entre elles. Les bases de données principale et de secours deviennent ainsi actives ou en veille en même temps.
Dépannage
Avant de suivre la solution, vous pouvez effectuer des étapes de dépannage de base :
1. Vérifiez la connectivité réseau et/ou les problèmes liés à la latence entre la passerelle réseau Prime principale et secondaire.
2. Vérifiez cette connexion de base de données sur Principal pour rechercher les erreurs ORA liées à la base de données :
<database_home_directory>/diag/rdbms/anadb/anadb/trace/alert_anadb.log
3. Vérifiez l'état open_mode, current_scn et switchover sur la base de données principale et secondaire.
SQL> select open_mode from v$database
SQL> select current_scn from v$database
SQL> select switchover_status from v$database;
4. La cause première de la réplication de la base de données peut être un problème de communication réseau entre la base de données Prime Central principale et secondaire, une base de données corrompue ou des erreurs liées à la base de données similaire.
Solution
Étape 1. Vérifiez ORACLE_SID sur la passerelle/base de données principale et secondaire.
Sur la passerelle/base de données principale ORACLE_SID = primedb
Sur la passerelle/base de données secondaire ORACLE_SID = primdtdb
Si ORACLE_SID sur la passerelle principale ou secondaire n'est pas comme indiqué précédemment, utilisez cette commande pour configurer le SID correct :
setenv ORACLE_SID = <value>
Note: Ici <valeur > = primedb ou primstdb est basé sur primaire ou secondaire.
Étape 2. Sur la base de données Active et Standby, connectez-vous en tant que sysdba et recherchez le chemin d'accès du répertoire au fichier de données et refaites les journaux et les fichiers journaux d'archivage.
Utilisez ces commandes :
Pour rechercher les fichiers de données :
SQL> select name from v$datafile;
Pour rechercher les fichiers journaux de rétablissement :
SQL> select member from v$logfile;
Pour rechercher le journal d'archivage :
SQL> show parameter log_archive_dest_1;
Étape 3. Pour reconstruire la base de données, exécutez ce script dans la syntaxe correcte après avoir identifié le scénario correct décrit à l'étape 4.
sh PCoracleADG.ksh [PRIMARY] [STANDBY] [DB_TO_BE_DROPPED] [SYSTEM_PASSWD] [ORACLE_BASE]
[ORACLE_USER] [ARCHIVED_LOG_LOCATION] [ORACLE_DATA_FILES_LOCATION] [REDO_LOG_LOCATION]
Note: Le script est copié sous le dossier $ORACLE_BASE/standby et doit être exécuté en tant qu'utilisateur oracle.
Étape 4. Identifiez tout scénario avec l'état actuel de votre configuration et procédez comme suit :
Note: Par exemple, il est supposé que HA1 est la passerelle/base de données principale et HA2 la passerelle/base de données secondaire
Scénario 1 : HA1 est actif et doit reconstruire la base de données de secours sur HA2. Utilisez ces paramètres et exécutez le script mentionné à l'étape 3. sur HA2.
PRIMARY = primedb
STANDBY = primstdb
DB_TO_BE_DROPPED = primstdb
SYSTEM_PASSWD = use Step 5
ORACLE_BASE = /orahome/oracle
ORACLE_USER = oracle
ARCHIVED_LOG_LOCATION = output of ‘show parameter log_archive_dest_1;&rsquo
ORACLE_DATA_FILES_LOCATION = output of ‘select name from v$datafile;&rsquo
REDO_LOG_LOCATION = output of ‘select member from v$logfile;’
Scénario 2 : HA2 est actif et doit reconstruire la base de données de secours sur HA1. Utilisez ces paramètres et exécutez le script mentionné à l'étape 3. sur HA1.
PRIMARY = primedb
STANDBY = primstdb DB_TO_BE_DROPPED = primedb SYSTEM_PASSWD = use Étape 5 ORACLE_BASE = /orahome/oracle ORACLE_USER = oracle ARCHIVED_LOG_LOCATION = sortie de la commande show paramètre log_archive_dest_1 ;&rsquo ORACLE_DATA_FILES_LOCATION = sortie de la commande select$datafile ;&rsquo REDO_LOG_LOCATION = sortie de 'select member from v$logfile ; '
Étape 5. Suivez cette procédure pour découvrir <SYSTEM_PASSWD> :
su - prime sur HA1 ou HA2
grep Embedded_SYSTEM_PASS= install/conf/.db.conf
Par exemple, s'il a Embedded_SYSTEM_PASS=90f8006cd6bc0dde, alors :
- java -cp install/utils/encryptionUtil.jar EncodeDecode decrypt 90f8006cd6bc0dde.
- Prime Central retourne une chaîne de sortie qui est utilisée comme SYSTEM_PASSWD à l'étape 4.
Vérification
Vérification de la base de données sur la passerelle principale et secondaire du réseau principal :
1. Vérifiez que le nombre et le nom des fichiers de journalisation sont identiques dans la base de données Active et Standby.
2. Vérifiez que le nombre et la taille des fichiers de données sur la base de données Active et Standby sont identiques.
3. Utilisez cette commande sur la base de données Active et Standby pour montrer que la base de données SCN on Standby actuelle peut rattraper la base de données scn on Primary :
sqlplus / as sysdba
SQL>select current_scn from v$database;
4. Vérifiez que le rôle_base de données de la base de données Active est PRIMARY et que la base de données de secours est LOGICAL_STANDBY.
sqlplus / as sysdba
SQL>select database_role from v$database;
5. Vérifiez que le mode open_mode de la base de données active est LECTURE ÉCRITURE et LECTURE SEULE AVEC APPLICATION sur la base de données de secours.
sqlplus / as sysdba
SQL>select open_mode from v$database;
6. Vérifiez que l'état switchover_status d'Active est EN ATTENTE et NON AUTORISÉ dans la base de données de secours :
sqlplus / as sysdba
SQL>select switchover_status from v$database;
7. Valider le transfert des journaux d'archivage :
Sur la base de données active :
SQL> alter system switch logfile;
Base de données en veille :
Vérifiez qu'un nouveau fichier est créé en ~/arch