
WARNING ORA-16801: redo transport-related property is inconsistent
En una tarea cotidiana me toca recrear el sitio de contingencia, finalizada la misma y confirmando que se estan aplicando los logs y que todo estaba sincronizado, me encuentro con un warning el DGBROKER. Revisando desde la consola del Grid Control y la consola dgmrl lo confirmo, ORA-16801.
DGMGRL> show database verbose "DAPRO"; Database Name: DAPRO Role: PRIMARY Enabled: YES Intended State: ONLINE Instance(s): DAPRO1 DAPRO4 ... ... LogArchiveTrace(*) LogArchiveFormat(*) LatestLog(*) TopWaitEvents(*) (*) - Please check specific instance for the property value Current status for "DAPRO": Warning: ORA-16809: multiple warnings detected for the database
Como tengo esta base en un RAC con dos nodos, y configurado con el DGBROKER, paso a utilizar las bondades de la linea de comandos, desde una de las instancias primarias.
DGMGRL> show instance verbose "DAPRO1" ON DATABASE "DAPRO"; Instance 'DAPRO1' of database 'DAPRO' Host Name: saturno01lx PFILE: Properties: HostName = 'saturno01lx' SidName = 'DAPRO1' LocalListenerAddress = '(ADDRESS=(PROTOCOL=TCP)(HOST=saturno01lx-vip)(PORT=1530))' StandbyArchiveLocation = 'dgsby_DAPRO' AlternateLocation = '' LogArchiveTrace = '0' LogArchiveFormat = '%t_%s_%r.dbf' LatestLog = '(monitor)' TopWaitEvents = '(monitor)' Current status for "DAPRO1": Warning: ORA-16801: redo transport-related property is inconsistent with database setting
El primer paso ante el error es verificar si existen los standby logs:
SQL> select group# ||' - '|| type ||' - '|| member from v$logfile where type='STANDBY'; no rows selected
Confirmado, no existen.
Cuando creamos la instancia stanby a partir de un backup tomado en la instancia primaria, un paso importante es la creacion de los standby logs.
Es por ello que rapidamente arme los pasos a seguir para solucionar el problema.
1) DESACTIVAR ENVIOS DE LOGS EN EL SITIO PRIMARIO.
alter system set log_archive_dest_state_2=defer scope=both sid='*';
2) DESACTIVAR BROKER EN EL SITIO SECUNDARIO.
SQL> sho parameter broker NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_config_file1 string /u06/dgbroker/dr1_DADGPRO.dat dg_broker_config_file2 string /u07/dgbroker/dr2_DADGPRO.dat dg_broker_start boolean TRUE SQL> alter system set dg_broker_start=FALSE scope=both sid='*'; System altered.
3) DESACTIVAR APLICACION DE LOGS EN SITIO SECUNDARIO.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; Database altered.
4) CREACION DE LOS STANDBY LOGS
Atención, no usemos los mismos grupos que en el sitio primario por que trajimos un backup generado del mismo lugar y surgira el error ORA-01184 al querer agregarlos:
SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 GROUP 1 SIZE 200M, GROUP 2 SIZE 200M, GROUP 3 SIZE 200M, GROUP 4 SIZE 200M, GROUP 5 SIZE 200M; 2 3 4 5 6 ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 * ERROR at line 1: ORA-01184: logfile group 1 already exists
Reintentamos con nuevamente con grupos distintos
SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 GROUP 50 SIZE 100M, GROUP 51 SIZE 100M, GROUP 52 SIZE 100M, GROUP 53 SIZE 100M, GROUP 54 SIZE 100M; 2 3 4 5 6
5) ACTIVAMOS EL BROKER EN EL SITIO SECUNDARIO Y ESTE MISMO VA A CAMBIAR EL PARAMETRO EN EL SITIO PRIMARIO PARA EL ENVIO DE LOGS
SQL> sho parameter broker NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_config_file1 string /u06/dgbroker/dr1_DADGPRO.dat dg_broker_config_file2 string /u07/dgbroker/dr2_DADGPRO.dat dg_broker_start boolean FALSE SQL> alter system set dg_broker_start=TRUE scope=both sid='*'; System altered.
6) VERIFICAMOS QUE EL ESTEN APLICANDO LOS LOGS
SQL> select NAME, THREAD#, SEQUENCE#, APPLIED, registrar from v$archived_log where APPLIED='NO' order by sequence#; 2 NAME -------------------------------------------------------------------------------- THREAD# SEQUENCE# APP REGISTR ---------- ---------- --- ------- +DADGPRO_DG4/DADGPRO/archivelog/2010_01_22/thread_2_seq_10750.7311.708953859 2 10750 NO RFS +DADGPRO_DG4/DADGPRO/archivelog/2010_01_22/thread_2_seq_10750.7150.708953859 2 10750 NO RFS
Cuando podemos confirmar que termino de aplicar bien podemos loguearmos al DG_BROKER y verificar que ya no hay mas warnings.
DGMGRL> show instance verbose "DAPRO1" ON DATABASE "DAPRO";Instance 'DAPRO1' of database 'DAPRO' Host Name: saturno01lx.bancocredicoop.coop PFILE: Properties: HostName = 'saturno01lx' SidName = 'DAPRO1' LocalListenerAddress = '(ADDRESS=(PROTOCOL=TCP)(HOST=saturno01lx-vip)(PORT=1530))' StandbyArchiveLocation = 'dgsby_DAPRO' AlternateLocation = '' LogArchiveTrace = '0' LogArchiveFormat = '%t_%s_%r.dbf' LatestLog = '(monitor)' TopWaitEvents = '(monitor)'Current status for "DAPRO1": SUCCESS
Damos por finalizada la tarea exitosamente.
There is obviously a lot to learn about this. There were some pretty good points.
LikeLike
thanks my friend, I follow this steps
LikeLike