Questa mattina mi sono svegliato con alcuni avvisi di EM sul blocco del mio archiviatore, simili ai seguenti:
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
Ho utilizzato DG Broker per interrompere e quindi riavviare il trasporto dei log.
edit database orcl set state=transport-off;
edit database orcl set state=transport-on;
Ma l'archiviatore verrebbe comunque bloccato. Quindi tocca al registro degli avvisi per ottenere più indizi. Ho trovato questo nel registro degli avvisi del primario:
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
Il messaggio di errore sembra autoesplicativo. Ho COMPATIBILE impostato su un valore troppo basso. A questo punto, mi sono ricordato di aver cambiato COMPATIBILE nelle primarie un mese fa. Devo aver dimenticato di cambiare anche questo in standby. Una rapida verifica ha dimostrato la mia ipotesi. COMPATIBILE è impostato su 12.1.0.2 nel primario ma 11.2.0 in standby. Quindi c'è il mio problema. Ho cambiato COMPATIBILE in standby, l'ho rimbalzato e quindi ho ripreso il trasporto del registro. La vita andava bene e tutto era sistemato.
Se ricordi bene, ho detto che ho cambiato COMPATIBILE nelle primarie un mese fa. Perché questo era un problema oggi e non allora? Per saperlo, dovresti conoscere la cronologia delle modifiche per questo database. Ieri sera abbiamo rilasciato un nuovo codice alla produzione. Parte del rilascio del codice prevedeva l'inclusione di una nuova tabella che utilizzasse la nuova funzione della colonna IDENTITY di Oracle 12c. Questa è stata la prima funzionalità solo 12c che abbiamo implementato nella nostra base di codice. Lo standby stava tentando di creare la tabella con la nuova funzionalità, ma l'operazione non è stata completata a causa dell'impostazione errata dei parametri. Sono ancora un po' confuso su come questo abbia influito sul trasporto di tronchi. Mi sarei aspettato che solo l'applicazione del registro fosse interrotta, ma è così che si è manifestata.