Introducción
Este documento describe un procedimiento paso a paso para resolver el problema de sincronización o replicación de bases de datos en Prime Network mediante la reconstrucción de la base de datos en espera de la base de datos principal.
Prerequisites
Requirements
Cisco recomienda que tenga conocimiento sobre estos temas:
- Utilice este procedimiento para reconstruir la base de datos secundaria sólo si SWITCHOVER_STATUS de la base de datos principal se encuentra en GAP NO RESOLVABLE.
- Asegúrese de que la base de datos principal está en READ WRITEy que la base de datos secundaria está en READ ONLYo READ ONLY WITH APPLYmode.
- Asegúrese de identificar el gateway/base de datos primario y secundario Prime Central correcto.
Componentes Utilizados
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
- Prime Central versión 1.2 y posterior
- Versión 11G de Oracle Database
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.
Antecedentes
1. Utilice este comando para conocer switchover_status de la base de datos primaria:
SQL> select switchover_status from v$database
SWITCHOVER_STATUS
--------------------
UNRESOLVABLE GAP
Nota: El switchover de Prime Central Geo HA falla abruptamente, dejando el sistema Prime Central GEO HA y/o el estado de la función de base de datos corruptos (ambos en espera o ambos) y luego necesita reconstruir primario o secundario dependiendo del último estado activo/en espera.
Nota: Para todos los demás casos, abra SR con Cisco TAC para resolver el problema de replicación de la base de datos.
2. Utilice este comando para conocer el modo actual de la base de datos primaria y secundaria:
SQL> select open_mode from v$database;
3. Utilice este comando para conocer ORACLE_SID de la base de datos primaria y secundaria:
En la puerta de enlace principal del usuario oracle:
echo $ORACLE_SID -> output should be “primedb”
En la puerta de enlace secundaria del usuario Oracle:
echo $ORACLE_SID -> output should be “primstdb”
Problema
El switch Prime Central GEO HA y/o el procedimiento failover/failback fallan cuando las bases de datos activas y en espera se quedan fuera de sincronización entre sí. Esto da como resultado que las bases de datos primarias y en espera se vuelvan activas o en espera al mismo tiempo.
Troubleshoot
Antes de seguir la solución, puede realizar los pasos básicos de solución de problemas:
1. Verifique la conectividad de red y/o los problemas relacionados con la latencia entre el gateway de red Prime primario y secundario.
2. Verifique este registro de base de datos en Primario para encontrar cualquier error de ORA relacionado con la base de datos:
<database_home_directory>/diag/rdbms/anadb/anadb/trace/alert_anadb.log
3. Verifique el estado open_mode, current_scn y switchover en la base de datos principal y secundaria.
SQL> select open_mode from v$database
SQL> select current_scn from v$database
SQL> select switchover_status from v$database;
4. La causa principal de la replicación de la base de datos podría ser principalmente un problema de comunicación de red entre la base de datos principal y secundaria de Prime Central, una base de datos dañada o errores similares relacionados con la base de datos.
Solución
Paso 1. Verifique el ORACLE_SID en la puerta de enlace/bases de datos primaria y secundaria.
En la puerta de enlace principal/base de datos ORACLE_SID = primedb
En la puerta de enlace secundaria/base de datos ORACLE_SID = primdtdb
Si ORACLE_SID en cualquiera de las puertas de enlace primarias o secundarias no es como se mencionó anteriormente, utilice este comando para configurar el SID correcto:
setenv ORACLE_SID = <value>
Nota: Aquí <value > = primedb o primstdb se basa en primario o secundario.
Paso 2. En Active y Standby database login como sysdba y busque la trayectoria de directorio al archivo de datos y los redo logs y los archivos de log de archivo.
Utilice estos comandos:
Para buscar los archivos de datos:
SQL> select name from v$datafile;
Para buscar los archivos redo log:
SQL> select member from v$logfile;
Para encontrar el registro de archivo:
SQL> show parameter log_archive_dest_1;
Paso 3. Para reconstruir la base de datos, ejecute este script con la sintaxis correcta después de identificar el escenario correcto descrito en el paso 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]
Nota: El script se copia en la carpeta $ORACLE_BASE/standby y debe ejecutarse como usuario Oracle.
Paso 4. Identifique cualquier escenario con el estado actual de su configuración y proceda de la forma siguiente:
Nota: A modo de ejemplo, se supone que HA1 es el gateway/base de datos principal y HA2 es el gateway/base de datos secundario
Escenario 1: HA1 está activo y necesita reconstruir la base de datos en espera en HA2. Utilice estos parámetros y ejecute el script mencionado en el Paso 3. en 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;’
Escenario 2: HA2 está activo y necesita reconstruir la base de datos en espera en HA1. Utilice estos parámetros y ejecute el script mencionado en el paso 3. en HA1.
PRIMARY = primedb
STANDBY = primstdb DB_TO_BE_DROPPED = primedb SYSTEM_PASSWD = use el paso 5 ORACLE_BASE = /orahome/oracle ORACLE_USER = oracle ARCHIVED_LOG_LOCATION = resultado de ‘show parámetro log_archive_dest_1;&rsquo ORACLE_DATA_FILES_LOCATION = resultado de ‘select name de v$datafile;&rsquo REDO_LOG_LOCATION = resultado de ‘seleccionar miembro de v$logfile’;
Paso 5. Utilice este procedimiento para averiguar <SYSTEM_PASSWD>:
su - prime en HA1 o HA2
grep Embedded_SYSTEM_PASS= install/conf/.db.conf
Por ejemplo, si tiene Embedded_SYSTEM_PASS=90f8006cd6bc0dde, entonces:
- java -cp install/utils/encryptionUtil.jar EncodeDecode decrypt 90f8006cd6bc0dde.
- Prime Central devuelve la cadena de salida que se utiliza como SYSTEM_PASSWD en el paso 4.
Verificación
Verificación de la base de datos en el gateway de red Prime principal y secundario:
1. Verifique que el número y los nombres de los archivos redo log sean los mismos en la base de datos Activa y En Espera.
2. Verifique que el número y el tamaño de los archivos de datos en la base de datos activa y en espera sean iguales.
3. Utilice este comando tanto en la base de datos activa como en espera para mostrar que la SCN actual en la base de datos en espera puede alcanzar el scn en la base de datos principal:
sqlplus / as sysdba
SQL>select current_scn from v$database;
4. Verifique que la función_de_base de datos activa sea PRIMARY y que la base de datos en espera sea LOGICAL_STANDBY.
sqlplus / as sysdba
SQL>select database_role from v$database;
5. Verifique que el modo abierto de la base de datos activa sea LECTURA ESCRITURA y SÓLO LECTURA CON APLICACIÓN en la base de datos en espera.
sqlplus / as sysdba
SQL>select open_mode from v$database;
6. Verifique que el switchover_status de Active sea TO STANDBY y NOT ALLOWED en la base de datos en espera:
sqlplus / as sysdba
SQL>select switchover_status from v$database;
7. Valide que los registros de archivo se transfieran:
En la base de datos activa:
SQL> alter system switch logfile;
En la base de datos en espera:
Verifique que se cree un nuevo archivo en ~/arch