Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Arquivador suspenso devido a COMPATÍVEL ORA-16484


Esta manhã, acordei com alguns alertas do EM sobre o travamento do meu arquivador, semelhante ao seguinte:
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

Eu usei o DG Broker para parar e reiniciar o transporte de log.
edit database orcl set state=transport-off;
edit database orcl set state=transport-on;

Mas o arquivador ainda ficaria pendurado. Portanto, vá para o log de alertas para obter mais pistas. Encontrei isso no log de alerta do primário:
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

A mensagem de erro parece autoexplicativa. Eu tenho COMPATIBLE definido muito baixo. Neste ponto, lembrei que mudei COMPATIBLE no primário há um mês. Devo ter esquecido de alterar isso também no modo de espera. Uma verificação rápida provou minha hipótese. COMPATIBLE é definido como 12.1.0.2 no primário, mas 11.2.0 no standby. Então aí está o meu problema. Mudei COMPATIBLE no modo de espera, devolvi e retomei o transporte de log. A vida estava bem e tudo foi consertado.

Se você se lembra bem, eu disse que troquei COMPATIBLE no primário há um mês. Por que isso era um problema hoje e não naquela época? Para saber isso, você teria que conhecer o histórico de alterações desse banco de dados. Ontem à noite, lançamos um novo código para produção. Parte do lançamento do código foi incluir uma nova tabela que usava o novo recurso de coluna IDENTITY do Oracle 12c. Este foi o primeiro recurso somente 12c que implantamos em nossa base de código. O standby estava tentando criar a tabela com o novo recurso, mas essa operação não pôde ser concluída devido à configuração incorreta do parâmetro. Ainda estou um pouco confuso como isso afetou o transporte de log. Eu esperava que apenas a aplicação de log fosse quebrada, mas é assim que se manifesta.