Oracle
 sql >> Baza danych >  >> RDS >> Oracle

ORA-38868

Kiedy ostatnio pracowałem nad zapasową bazą danych, poszedłem do DG Broker, aby sprawdzić status i otrzymałem to:

DGMGRL> show configuration
 
Configuration - resp_ress_config
 
Protection Mode: MaxPerformance
Databases:
resp - Primary database
ress - Physical standby database
Error: ORA-16766: Redo Apply is stopped

Hmm… mój tryb gotowości nie wykonuje ponawiania. Gdy próbowałem rozpocząć zarządzane odzyskiwanie, w dzienniku alertów trybu gotowości pojawiły się następujące informacje:

Tue Dec 31 09:52:10 2013
Managed Standby Recovery starting Real Time Apply
Tue Dec 31 09:52:10 2013
MRP0: Background Media Recovery terminated with error 38868
Errors in file /u01/app/oracle/diag/rdbms/ress/ress2/trace/ress2_pr00_13905.trc:
ORA-38868: warning: the control file may have incorrect data file structure
Managed Standby Recovery not using Real Time Apply
Slave exiting with ORA-38868 exception
Errors in file /u01/app/oracle/diag/rdbms/ress/ress2/trace/ress2_pr00_13905.trc:
ORA-38868: warning: the control file may have incorrect data file structure
Recovery Slave PR00 previously exited with exception 38868
MRP0: Background Media Recovery process shutdown (ress2)

Więc ORA-38868 mówi mi, że mam złą strukturę katalogów. Moja pierwsza myśl była taka, że ​​ma to związek z pracą, o której wczoraj pisałem na blogu. Ale ta praca była po stronie pierwotnej. Spojrzałem wstecz na dziennik alertów stanu gotowości i znalazłem pierwsze wystąpienie tego błędu około 2,5 miesiąca temu. Gdyby to był system produkcyjny, mógłbym mieć duże kłopoty, aby ten problem pozostał niezauważony przez ten czas. Ale mam środki, które ostrzegają mnie, jeśli mój stan gotowości produkcyjnej opóźni się w stosunku do podstawowego przez niedopuszczalny okres. To tylko system testowy, który mogę zdmuchnąć i zacząć od zera, jeśli zajdzie taka potrzeba. Ale co by to było za zabawne? Zobaczmy, czy możemy rozwiązać problem.

Moim pierwszym przystankiem był Metalink. Ale dostałem zero trafień dla błędu ORA-38868. Podczas wyszukiwania w Internecie otrzymałem jeden trafny hit, który oferował rozwiązanie polegające na prostym ponownym uruchomieniu instancji i ponownym uruchomieniu aplikacji. Byłem sceptyczny, ale spróbowałem łatwego rozwiązania. Nie powinno dziwić, że proste ponowne uruchomienie instancji nie rozwiązało problemu. Błąd mówi mi, że mój plik kontrolny ma w sobie uszkodzenie. Ponowne uruchomienie instancji nie naprawi uszkodzenia pliku kontrolnego. Ponieważ Metalink i Internet są bezużyteczne, myślę, że to do mnie należy naprawienie tego. Jeśli wszystko inne zawiedzie, po prostu wyłączę stan gotowości i odtworzę go.

Moim pierwszym rozwiązaniem jest powrót do podstawowego i utworzenie zapasowego pliku kontrolnego. Następnie uruchom tryb gotowości za pomocą pliku kontrolnego trybu gotowości. Mam pewność, że nowy plik kontrolny z podstawowego pliku rozwiąże problem. Muszę jednak zastosować 2,5 miesiąca ponownego wykonania, którego już nie mam.

Próbowałem zbadać użycie RMAN do przewijania stanu gotowości za pomocą przyrostowej kopii zapasowej. Ale to wydaje się spadać na moją listę priorytetowych rzeczy do zrobienia. Mam nadchodzący projekt, w którym będę musiał wiedzieć, jak to zrobić, a do tego projektu pozostał niecały miesiąc. Wydaje się więc, że to idealny czas na przećwiczenie tej techniki w moim nadchodzącym projekcie i naprawienie mojego obecnego problemu. Aby to zrobić, wykonaj następujące czynności:

Metalink Note 836986.1 Steps to Perform for Rolling Forward a Standby Database Using RMAN Incremental Backups

Kroki opisane w tym dokumencie nie tylko przesunęły się do przodu w moim stanie gotowości, ale także odtworzyły pliki kontrolne, rozwiązując w ten sposób mój problem.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Obsługa błędów Oracle

  2. Jak przechowywać identyfikator GUID w Oracle?

  3. ORA-04091:tabela [blah] mutuje, wyzwalacz/funkcja może jej nie widzieć

  4. Procedura eksportowania tabeli do wielu plików csv

  5. Eksport CLOB do pliku tekstowego przy użyciu Oracle SQL Developer