Dziś rano obudziło mnie kilka alertów od EM o zawieszeniu mojego archiwizatora, podobne do tych:
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
Użyłem DG Broker, aby zatrzymać, a następnie ponownie uruchomić transport dzienników.
edit database orcl set state=transport-off;
edit database orcl set state=transport-on;
Ale archiwizator i tak by wisiał. Więc przejdź do dziennika alertów, aby uzyskać więcej wskazówek. Znalazłem to w dzienniku alertów głównego:
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
Komunikat o błędzie wydaje się oczywisty. Mam zestaw KOMPATYBILNY za niski. W tym momencie przypomniałem sobie, że miesiąc temu zmieniłem KOMPATYBILNY w podstawowym. Zapomniałem też zmienić to w gotowości. Szybka weryfikacja potwierdziła moją hipotezę. COMPATIBLE jest ustawiony na 12.1.0.2 w trybie podstawowym, ale 11.2.0 w trybie gotowości. Więc jest mój problem. Zmieniłem COMPATIBLE w trybie gotowości, odbiłem go, a następnie wznowiłem transport dziennika. Życie było w porządku i wszystko zostało naprawione.
Jeśli dobrze pamiętasz, powiedziałem, że zmieniłem KOMPATYBILNY w podstawowym miesiącu temu. Dlaczego był to problem dzisiaj, a nie wtedy? Aby to wiedzieć, musisz znać historię zmian dla tej bazy danych. Zeszłej nocy wprowadziliśmy nowy kod do produkcji. Częścią wydania kodu było dodanie nowej tabeli, która korzystała z nowej funkcji kolumny IDENTITY Oracle 12c. To była pierwsza funkcja obsługująca tylko 12c, którą wdrożyliśmy w naszej bazie kodu. W trybie gotowości próbowano utworzyć tabelę z nową funkcją, ale operacja ta nie mogła zostać zakończona z powodu nieprawidłowego ustawienia parametrów. Nadal jestem trochę zdezorientowany, jak to wpłynęło na transport kłód. Spodziewałem się, że tylko log zostanie złamany, ale tak to się objawiło.