Duplikacja bazy danych z użyciem RMAN – Windows

Czasem mamy potrzebę aby szybko na tym samym serwerze postawić/odświeżyć  środowisko testowe. Oczywiście możemy posłużyć się data pumpem ale możemy też użyć opcji duplikacji. Wcześniej musimy tylko utworzyć kilka plików dla nowej instancji.


Tworzymy nowy plik pfile dla bazy testowej np. initTEST.ora kopiując zawartość z pliku produkcyjnego pfile. Jeśli takiego pliku nie ma bo jest tylko spfile to musimy go sobie stworzyć. Logujemy się do bazy produkcyjnej na użytkownika sys i wydajemy polecenie create pfile from spfile;
Z pliku pfile testowego usuwamy parametry ukryte zaczynające się od  _ , i dopisujemy parametry zaznaczone poniżej.

01

Dodajemy również wpis do pliku tnsnames.ora z nową instancją.

02

 

Podczas tworzenia listenera należy zwrócić uwagę aby nie było wpisów zaznaczonych w poniższym zrzucie. PROGRAM = extproc odpowiada za wykonywanie procedur ze źródeł zewnętrznych.

03

 

Tworzymy plik haseł i w Windowsach zrobimy to poniższym poleceniem.

04

 

Następnie należy stworzyć katalogi jak na przykładzie poniżej:
C:\app\oracle\oradata\test
C:\app\oracle\fast_recovery_area\test
C:\app\oracle\admin\test\adump

06
07
08

 

Następnie musimy dodać serwis w usługach (services.msc) wydając polecenie jak niżej.

09
Możemy też zrobić to w inny sposób: ustawić ORACLE_SID=test i kolejno wykonać
oradim.exe -new -sid %ORACLE_SID% -startmode manual -spfile
oradim.exe -edit -sid %ORACLE_SID% -startmode auto -srvcstart system

10
Jeśli chcielibyśmy usunąć serwis należy wydać komendę oradim -delete -sid SID_BAZY

 

Po tej operacji należy przeładować usługę LSNRCTL. Wpisujemy lsnrctl, wykonujemy kolejno polecenia stop à start à status aby zobaczyć uruchomione serwisy listener’a dla PRD i TEST. Nie robimy tego poleceniem reload reload ponieważ nie jest to pełny restart usługi.

11

 

Eksportujemy Oracle SID (ORACLE_SID) bazy docelowej.

12

 

Uruchamiamy bazę docelową(target) w trybie NOMOUNT.

13

 

Eksportujemy Oracle SID bazy źródłowej i kładziemy ją.

14
Sprawdzamy czy nasza baza źródłowa działa w trybie archivelog , jeśli nie to należy ją tak ustawić.
Jeśli mamy tak ustawioną bazę to podnosimy ją tylko w tryb mount.

 

Rozpoczynamy duplikacje.
Ustawiamy bazę produkcyjną i łączymy się do RMAN’a na bazę źródłową (target) a następnie docelową (auxiliary).

17

Rozpoczynamy duplikacje. Ustawiamy bazę produkcyjną i łączymy się do RMAN’a na bazę źródłową (target) a następnie docelową (auxiliary).

Wykonujemy komendę jak poniżej i czekamy na zduplikowanie bazy
rman target sys/supertajne_haslo@prd auxiliary sys/supertajne_haslo@test

duplicate database to test from active database;

Jeśli klonowanie zakończyło się poprawnie usuwamy plik spfile bazy auxiliary (żeby nie przeszkadzał) i startujemy bazę źródłową target.


 

Wskazówki:


Kiedy chcemy wykonać po zalogowaniu się do użytkownika RMAN kilka poleceń po sobie możemy zawrzeć te polecenia w bloku jak poniżej:
run {
startup clone force nomount;
duplicate database to test from active database;
shutdown clone abort;
}

Napotkane błędy:


RMAN-04006: error from auxiliary database: ORA-28547: connection to server failed, probable Oracle Net admin error

RMAN-05520: database name mismatch, auxiliary instance has PRD, command specified TEST

 

 

 

 

 

Posted in Bez kategorii.