sql >> Base de Datos >  >> RDS >> Oracle

Archiver colgado debido a COMPATIBLE ORA-16484

Esta mañana me desperté con algunas alertas de EM sobre el bloqueo de mi archivador, similares a las siguientes:

Target type=Database Instance 
Target name=orcl4 
Categories=Fault 
Message=The archiver hung at time/line number: Fri Sep 09 06:07:22 2016/376. 
Severity=Critical

Usé DG Broker para detener y luego reiniciar el transporte de registros.

edit database orcl set state=transport-off;
edit database orcl set state=transport-on;

Pero el archivador aún sería colgado. Entonces, vaya al registro de alertas para obtener más pistas. Encontré esto en el registro de alertas principal:

TT00: Attempting destination LOG_ARCHIVE_DEST_2 network reconnect (16484)
TT00: Destination LOG_ARCHIVE_DEST_2 network reconnect abandoned
Fri Sep 09 08:07:40 2016
Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl4/trace/orcl4_tt00_16068.trc:
ORA-16484: compatibility setting is too low

El mensaje de error parece autoexplicativo. Tengo COMPATIBLE configurado demasiado bajo. En este punto, recordé que cambié COMPATIBLE en la primaria hace un mes. Debo haber olvidado cambiar esto también en el modo de espera. Una rápida verificación probó mi hipótesis. COMPATIBLE está configurado en 12.1.0.2 en el principal pero 11.2.0 en el modo de espera. Entonces ahí está mi problema. Cambié COMPATIBLE en el modo de espera, lo reboté y luego reanudé el transporte de registros. La vida estaba bien y todo estaba arreglado.

Si recuerdas bien, dije que cambié COMPATIBLE en la primaria hace un mes. ¿Por qué era esto un problema hoy y no entonces? Para saber eso, tendría que conocer el historial de cambios de esta base de datos. Anoche, lanzamos un nuevo código a producción. Parte del lanzamiento del código fue incluir una nueva tabla que usaba la nueva función de columna IDENTIDAD de Oracle 12c. Esta fue la primera característica exclusiva de 12c que implementamos en nuestra base de código. El standby estaba intentando crear la tabla con la nueva función, pero esa operación no pudo completarse debido a la configuración incorrecta de los parámetros. Todavía estoy un poco confundido sobre cómo esto afectó el transporte de registros. Hubiera esperado que solo el registro se rompiera, pero así es como se manifestó.