2008-10-29

ORACLE STANDBY


baza PRIMARY

  1. uruchomienie trybu ARCHIVELOG
  2. uruchomienie logowania do redologów wszystkich obiektów - "ALTER DATABASE FORCE LOGGING;"
    spradzenie - " SELECT force_logging FROM v$database
  3. wpisanie do tnsname namiaru na bazę STANDBY
  4. wpisanie do pliku INIT:
    log_archive_dest_1='location=[archivelog_path]'
    log_archive_dest_2='service=[standby_tnsname] mandatory reopen=60'
  5. wyłączenie bazy lub wprowadzenie w tryb backup - "ALTER DATABASE BEGIN BACKUP;"
  6. wykonanie kopii plików bazy - bez redologów;
  7. włączenie bazy lub wyjście z trybu backup = "ALTER DATABASE END BACKUP;"
  8. wykonanie pliku kontrolnego dla bazy STANDBY - "ALTER DATABASE CREATE STANDBY CONTROLFILE AS '[file_path]';"
  9. wykonanie kopii plików archiwalnych bazy powstałych w czasie backupu
  10. przerzucenie skopiowanych plików na bazę STANDBY

baza STANDBY

  1. wpisanie do pliku INIT:
    log_archive_dest_1='location=[archivelog_path]'
    db_name=[similar as master db]
    standby_archive_dest=[archivelog_from_primary_path]
    db_file_name_convert='[datafile_primary_dir_path]','[datafile_standby_dir_path]'
    log_file_name_convert='[redolog_primary_dir_path]','[redolog_standby_dir_path]'
    opis:
    log_archive_dest_1 - wskazuje gdzie będą pliki archiwalne kiedy baza zostanie aktywowana
    standby_archive_dest - wskazuje gdzie będą wrzucane archivelogi z bazy PRIMARY
    db_file_name_convert - ustawia mapowanie ścieżki do katalogu z plikami danych, konieczne ponieważ w pliku controlfile będą namiary z bazy PRIMARY
    log_file_name_convert - analogicznie tylko dla redolgów
  2. skopiowanie plików danych i archivelogów do odpowiedniej lokalizacji (pamiętać o ustawieniu praw i właściciela)
  3. skopiowanie i powielenie wcześniej utworzonego pliku kontrolnego zgodnie z wartościami w pliku INIT
  4. uruchomienie bazy:
    startup nomount
    alter database mount standby database
    alter database recover managed standby database disconnect from session

przydatne kwerendy:
SELECT sequence#,first_time,next_time,applied FROM v$archived_log ORDER BY sequence# desc;
SELECT * FROM v$archive_gap;
SELECT process,status,sequence#,thread# FROM v$managed_standby;
SELECT open_mode FROM v$database;
ALTER SYSTEM ARCHIVE LOG CURRENT;
at standby;
SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

otwarcie bazy do odczytu (baza przyjmuje archivelogi jednak ich nie uaktualnia):
alter database open read only;
komunikat:
ERROR at line 1:
ORA-01154: database busy. Open, close, mount, and dismount not allowed now
recover managed standby database cancel;
komuniat:
Media recovery complete.
alter database open read only;
powrót do trybu standby:
shutdown immediate;
dalej w/g punktu 4 - uruchamianie bazy
aktywacja bazy standby:
recover managed standby database cancel;
shutdown immediate;
startup nomount;
alter database mount standby database;
#skopiować ostatni redolog z bazy PRIMARY;
recover standby database;
#w trybie interaktywnym wpisać lokalizację powyższego pliku
alter database activate standby database;
shutdown immediate;
startup;