Oracle - Baza produkcyjna i standby - zamiana ról
Wszystkie schematyczne działania na bazie Oracle standby są dobrze udokumentowane. Utworzenie, aktualizacja czy zmiana w bazę produkcyjną (odczyt i zapis).
Co w sytuacji kiedy mamy bazę produkcyjną i bazę standby i potrzebujemy czasowo zamienić je rolami? Chociażby po to, żeby potestować środowisko rezerwowe.
Odpowiedź jest dosyć prosta. Podmieniamy pliki kontrolne i redo. Być może również pliki sterujące i tnsnames ale to już zależy od specyfiki instalacji. Do przeprowadzenie operacji wystarczy SQLPLUS.
Przy założeniu, że plik sterujący (PFILE, SPFILE) jest identyczne w obu bazach wystarczy kolejno:
1) Zatrzymujemy bazę produkcyjną.
SHUTDOWN IMMEDIATE
2) Wczytujemy wszystkie archive logi do bazy standby
ALTER DATABASE RECOVER AUTOMATIC STANDBY DATABASE;
ALTER DATABASE RECOVER CANCEL;
3) Zatrzymujemy bazę standby
4) Kopiujemy na bok pliki kontrolne (np. CONTROL01.DBF, itp) i pliki REDO bazy produkcyjnej.
5) Kopiujemy na bok pliki kontrolne (np. CONTROL01.DBF, itp) bazy standby.
6) Podmieniamy w bazie standby pliki kontrolne i wgrywamy lub nadpisujemy stare pliki REDO.
7) Startujemy dotychczasową bazę standby komendą:
STARTUP
8) Prawdopodobnie zobaczymy komunikat, że uszkodzony jest plik przestrzeni SYSTEM. Naprawiamy komendą:
ALTER DATABASE RECOVER AUTOMATIC;
9) Otwieramy bazę danych:
ALTER DATABASE OPEN;
10) Jeśli operacja się udała właśnie wykonaliśmy połowę pracy i dotychczasowa baza standby jest gotowa do pracy. Teraz przystępujemy do uruchomienia bazy standby.
11) Podmieniamy w bazie produkcyjnej pliki kontrolne.
12) Startujemy dotychczasową bazę produkcyjną jako standby komendami:
STARTUP NOMOUNT
ALTER DATABASE MOUNT STANDBY DATABASE;
Co istotne, opisana operacja nie zmienia numeru inkarnacji bazy danych w związku z czym baza Oracle "myśli", że nic się nie zmieniło. Nie zmienia się w związku z tym nazewnictwo zarchiwizowanych logów dziennika i numeracja zmian i logów jest kontynuowana.


