Funkcja „Duplikat z aktywnej bazy danych” RMAN w Oracle 11g

  • Eustace Evans
  • 0
  • 2197
  • 69

Możesz utworzyć zduplikowaną bazę danych za pomocą polecenia duplikat RMAN. Zduplikowana baza danych ma inny DBID niż źródłowa baza danych i działa całkowicie niezależnie. Począwszy od 11g, możesz wykonać zduplikowaną bazę danych na 2 sposoby.

  1. Aktywna duplikacja bazy danych
  2. Duplikacja oparta na kopii zapasowej

Duplikacja aktywnej bazy danych kopiuje działającą docelową bazę danych przez sieć do pomocniczego miejsca docelowego, a następnie tworzy zduplikowaną bazę danych. Jedyna różnica polega na tym, że nie musisz mieć wcześniej istniejących kopii zapasowych i kopii RMAN. Praca powielania jest wykonywana przez kanał pomocniczy. Ten kanał odpowiada sesji serwera w instancji pomocniczej na hoście pomocniczym.

W ramach operacji powielania RMAN automatyzuje następujące kroki:

  1. Tworzy plik sterujący dla zduplikowanej bazy danych
  2. Ponownie uruchamia instancję pomocniczą i montuje zduplikowany plik sterujący
  3. Tworzy zduplikowane pliki danych i odzyskuje je za pomocą przyrostowych kopii zapasowych i zarchiwizowanych dzienników ponownego wykonania.
  4. Otwiera zduplikowaną bazę danych z opcją RESETLOGS

W przypadku duplikacji aktywnej bazy danych RMAN wykonuje jeden dodatkowy krok. skopiuj pliki danych docelowej bazy danych przez sieć do instancji pomocniczej

Bazę danych RAC TARGET można również powielić. Procedura jest taka sama, jak poniżej. Jeśli instancja pomocnicza również musi być bazą danych RAC, uruchom procedurę powielania dla pojedynczej instancji i przekonwertuj pomocniczą na RAC po pomyślnym zakończeniu duplikowania.

Podstawowe kroki do AKTYWNEGO kopiowania bazy danych

1. Przygotowanie instancji pomocniczej:

1. Tworzenie pliku parametrów inicjalizacji dla instancji Auxiliary.
Jeśli używasz SPFILE, jedynym parametrem wymaganym dla zduplikowanej bazy danych jest DB_NAME. Pozostałe parametry można ustawić w samym poleceniu DUPLICATE. Jeśli nie używasz techniki SPFILE, musisz ustawić parametry inicjalizacji, które mają zostać ustawione w pliku parametrów inicjalizacji. Wymagane parametry to:

DB_NAME CONTROL_FILES DB_BLOCK_SIZE DB_FILE_NAME_CONVERT LOG_FILE_NAME_CONVERT DB_RECOVERY_FILE_DEST

W tym poście dla uproszczenia określamy wszystkie wymagane parametry w pliku p. Na przykład:

# cat initTEST.ora DB_NAME = TEST diagnostyczny_dest = "E: \ oracle" DB_FILE_name_CONVERT = ('I: \ app \ apadhi \ oradata \ amar', 'E: \ oracle \ oradata \ test') LOG_FILE_NAME_CONVERT = ('I: \ app \ apadhi \ oradata \ amar ',' E: \ oracle \ oradata \ test ') SGA_TARGET = 262144000 CONTROL_FILES = "E: \ oracle \ oradata \ TEST \ control01.dbf" COMPATIBLE = 11.1.0.0.0

2. Utwórz plik haseł Oracle dla wystąpienia pomocniczego.
Plik haseł jest niezbędny do duplikacji aktywnej bazy danych. Plik haseł nie jest wymagany do tworzenia kopii zapasowych. W przypadku duplikacji aktywnej bazy danych łączy się bezpośrednio z instancją pomocniczą przy użyciu pliku haseł z tym samym hasłem SYSDBA co docelowa baza danych. Jeśli używasz pliku haseł, upewnij się, że masz to samo hasło SYSDBA, co docelowa baza danych. Można również określić opcję PASSWORD FILE w poleceniu DUPLICATE. W takim przypadku RMAN kopiuje plik haseł źródłowej bazy danych do hosta docelowego i zastępuje istniejący plik haseł dla instancji pomocniczej.

W tym poście używamy opcji pliku haseł w zduplikowanym poleceniu.

Utwórz usługę bazy danych (tylko dla systemu Windows) i plik haseł. Na przykład:

% set ORACLE_SID = TEST% set ORACLE_HOME = E: \ oracle \ product \ 11.1.0 \ db_1% oradim -NEW -SID TEST% orapwd FILE = E: \ oracle \ product \ 11.1.0 \ db_1 \ database \ PWDTEST.ora HASŁO = sys

Dla Unix / Linux usługa nie jest potrzebna, tylko plik z hasłami.

3. Uruchom instancję Auxiliary w NOMOUNT. Na przykład:

% sqlplus / as sysdba SQL * Plus: wersja 11.1.0.6.0 - produkcja w środę 1 sierpnia 20:33:30 2007 Copyright (c) 1982, 2007, Oracle. Wszelkie prawa zastrzeżone. Połączono z bezczynną instancją. Uruchomiono SQL> NOMOUNT pfile = E: \ oracle \ product \ 11.1.0 \ db_1 \ database \ initTEST.ora ORACLE uruchomiono. Całkowity globalny obszar systemu 150667264 bajty Stały rozmiar 1331732 bajty Zmienna wielkość 92278252 bajty Bufory bazy danych 50331648 bajtów Ponów bufory 6725632 bajty SQL> wyjście 

2. Utwórz niezbędną łączność Oracle NET.

1. Wstaw statyczny wpis dla pomocniczego w pliku listener.ora na serwerze pomocniczym. Ponadto wpis tnsnames.ora jest potrzebny zarówno w miejscu docelowym, jak i pomocniczym. Na przykład:

Listener.ora (na hoście POMOCNICZYM)

SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = TEST) (ORACLE_HOME = E: \ oracle \ product \ 11.1.0 \ db_1) (SID_LIST = TEST))) LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) HOST = apadhi-idc) (PORT = 1521)))

tnsname.ora (na hoście DOCELOWYM i POMOCNICZYM)

## Dla pomocniczej bazy danych TEST ## TEST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = apadhi-idc) (PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = TEST))) ## Dla docelowej bazy danych AMAR ## AMAR = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = 152.69.210.76) (PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = AMAR))) ## Podobnie dodaj wpis do bazy danych katalogu (opcjonalnie) 

2. Sprawdź łączność między instancjami docelowymi i pomocniczymi:
Wykonaj na hoście DOCELOWYM i POMOCNICZYM

% tnsping AMAR% tnsping TEST

3. Uruchom RMAN i połącz się z instancjami bazy danych

Uruchom RMAN i połącz się ze źródłową bazą danych jako TARGET, zduplikowaną instancją bazy danych jako AUXILIARY oraz, jeśli ma to zastosowanie, z bazą danych katalogu odtwarzania. Klienta RMAN można uruchomić na dowolnym hoście, o ile może on łączyć się ze wszystkimi instancjami bazy danych. Jeśli instancja pomocnicza wymaga tekstowego pliku parametrów inicjalizacji, plik ten musi istnieć na tym samym hoście, na którym działa aplikacja kliencka RMAN.

W tym poście robimy zduplikowaną bazę danych z serwera pomocniczego. Spójrz na przykład:

% rman Recovery Manager: wersja 11.1.0.6.0 - produkcja w środę 1 sierpnia, 21:06:49 2007 Copyright (c) 1982, 2007, Oracle. Wszelkie prawa zastrzeżone. RMAN> connect TARGET sys / sys @ AMAR; ## Docelowa baza danych ## połączona z docelową bazą danych: AMAR (DBID = 1450838187) RMAN> connect AUXILIARY sys / sys @ TEST; ## Pomocnicza baza danych ## podłączona do pomocniczej bazy danych: TEST (niezamontowana) RMAN> connect CATALOG rman / rman @ CAT; ## Baza danych katalogu. Opcjonalnie ## połączone z bazą danych katalogu odzyskiwania

4. Uruchom polecenie bazy danych DUPLICATE:

Najprostszym przypadkiem jest użycie aktywnej duplikacji bazy danych w celu zduplikowania bazy danych na innym hoście i użycie innej struktury katalogów.

W tym przykładzie założono, że:

  • Korzystanie z katalogu odzyskiwania.
  • Docelowa baza danych znajduje się na hoście 1 i zawiera 4 pliki danych.
  • Zduplikuj cel do bazy danych TEST na innym hoście o innej strukturze plików.
  • Przestrzeń tabel USERS w miejscu docelowym jest przestrzenią tabel tylko do odczytu.
  • Uruchomienie zduplikowanej bazy danych z witryny pomocniczej.
RMAN> POWIEL DOCELOWĄ BAZĘ DANYCH DO 'TESTU' Z AKTYWNEJ BAZY DANYCH DB_FILE_NAME_CONVERT 'I: \ app \ apadhi \ oradata \ amar', 'E: \ oracle \ oradata \ test';

A oto co się dzieje:

Uruchomienie Duplicate Db w 02-AUG-07 przy użyciu pliku kontrolnego docelowej bazy danych zamiast kanału przydzielonego do katalogu odzyskiwania: kanał ORA_AUX_DISK_1 ORA_AUX_DISK_1: SID = 97 typ urządzenia = zawartość dysku skryptu pamięci: ustaw nową nazwę dla pliku danych 1 na „E: \ ORACLE \” ORADATA \ TEST \ SYSTEM01.DBF "; ustaw nową nazwę dla pliku danych 2 na "E: \ ORACLE \ ORADATA \ TEST \ SYSAUX01.DBF"; ustaw nową nazwę dla pliku danych 3 na "E: \ ORACLE \ ORADATA \ TEST \ UNDOTBS01.DBF"; ustaw nową nazwę dla pliku danych 4 na "E: \ ORACLE \ ORADATA \ TEST \ USERS01.DBF"; kopia zapasowa jako kopia ponowne wykorzystanie pliku danych 1 format pomocniczy "E: \ ORACLE \ ORADATA \ TEST \ SYSTEM01.DBF" plik danych 2 format pomocniczy "E: \ ORACLE \ ORADATA \ TEST \ SYSAUX01.DBF" plik danych 3 format pomocniczy "E: \ ORACLE \ ORADATA \ TEST \ UNDOTBS01.DBF "format pomocniczy pliku danych 4" E: \ ORACLE \ ORADATA \ TEST \ USERS01.DBF "; sql 'zmień bieżący dziennik archiwum systemu';  wykonywanie skryptu pamięci wykonanie polecenia: SET NEWNAME wykonanie polecenia: SET NEWNAME wykonanie polecenia: SET NEWNAME wykonanie polecenia: SET NEWNAME Rozpoczynanie archiwizacji o 02-AUG-07 przydzielony kanał: ORA_DISK_1 kanał ORA_DISK_1: SID = 123 typ urządzenia = DISK kanał ORA_DISK_1: uruchamianie kopia pliku danych wejściowy numer pliku danych = 00001 nazwa = I: \ APP \ APADHI \ ORADATA \ AMAR \ SYSTEM01.DBF nazwa pliku wyjściowego = E: \ ORACLE \ ORADATA \ TEST \ SYSTEM01.DBF tag = TAG20070802T114254 RECID = 0 STAMP = 0 kanałów ORA_DISK_1: kopiowanie pliku danych zakończone, czas, który upłynął: 00:08:22 kanał ORA_DISK_1: rozpoczęcie kopiowania pliku danych wejściowy numer pliku danych = 00002 nazwa = I: \ APP \ APADHI \ ORADATA \ AMAR \ SYSAUX01.DBF nazwa pliku wyjściowego = E: \ ORACLE \ ORADATA \ TEST \ SYSAUX01.DBF tag = TAG20070802T114254 RECID = 0 STAMP = 0 kanał ORA_DISK_1: kopiowanie pliku danych zakończone, upływ czasu: 00:05:59 kanał ORA_DISK_1: rozpoczęcie kopiowania pliku danych wejściowy numer pliku danych = 00003 nazwa = I: \ APP \ APADHI \ ORADATA \ AMAR \ UNDOTBS01.DBF nazwa pliku wyjściowego = E: \ ORACLE \ ORADATA \ TEST \ UNDOTBS01.DBF tag = TAG200 70802T114254 RECID = 0 STAMP = 0 kanał ORA_DISK_1: kopiowanie pliku danych zakończone, czas, który upłynął: 00:02:57 kanał ORA_DISK_1: rozpoczęcie kopiowania pliku danych wejściowy numer pliku danych wejściowych = 00004 nazwa = I: \ APP \ APADHI \ ORADATA \ AMAR \ USERS01.DBF nazwa pliku wyjściowego = E: \ ORACLE \ ORADATA \ TEST \ USERS01.DBF tag = TAG20070802T114254 RECID = 0 STAMP = 0 kanał ORA_DISK_1: kopiowanie pliku danych zakończone, czas, który upłynął: 00:00:15 Zakończono tworzenie kopii zapasowej w instrukcji sql 02-AUG-07 : alter system archive log bieżąca instrukcja sql: CREATE CONTROLFILE REUSE SET DATABASE "TEST" RESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 ('E: \ ORACLE \ ORADATA \ TEST \ TEST) M REUSE, GROUP 2 ('E: \ ORACLE \ ORADATA \ TEST \ REDO02.LOG') ROZMIAR 50 M REUSE, GROUP 3 ('E: \ ORACLE \ ORADATA \ TEST \ REDO03.LOG') SIZE 50 M REUSE DATAFILE ' E: \ ORACLE \ ORADATA \ TEST \ SYSTEM01.DBF 'ZESTAW ZNAKÓW AL32UTF8 zawartość skryptu pamięci: kopia zapasowa jako kopia ponowne wykorzystanie archiwum, na przykład „I: \ APP \ APADHI \ PRODUCT \ 11.1.0 \ DB_1 \ RDBMS \ ARC00042 _0629061547.001 "format pomocniczy" E: \ ORACLE \ PRODUCT \ 11.1.0 \ DB_1 \ RDBMS \ ARC00042_0629061547.001 "archiwum, np." I: \ APP \ APADHI \ FLASH_RECOVERY_AREA \ AMAR \ ARCHIVELOG \ 2007_08_02 \ O1_Ciliary_JARC42 ". „E: \ ORACLE \ PRODUCT \ 11.1.0 \ DB_1 \ RDBMS \ ARC00042_0629061547.001”; katalog klonowany archiwalny dziennik "E: \ ORACLE \ PRODUCT \ 11.1.0 \ DB_1 \ RDBMS \ ARC00042_0629061547.001"; katalog klonowany archiwalny dziennik "E: \ ORACLE \ PRODUCT \ 11.1.0 \ DB_1 \ RDBMS \ ARC00042_0629061547.001"; przełącz clone datafile all;  Wykonywanie skryptu pamięci Rozpoczynanie tworzenia kopii zapasowej o 02-AUG-07 przy użyciu kanału ORA_DISK_1 kanał ORA_DISK_1: rozpoczęcie zarchiwizowanej kopii dziennika wejście zarchiwizowany wątek dziennika = 1 sekwencja = 42 RECID = 35 STAMP = 629553646 nazwa pliku wyjściowego = E: \ ORACLE \ PRODUCT \ 11.1. 0 \ DB_1 \ RDBMS \ ARC00042_0629061547.001 RECID = 0 STAMP = 0 kanał ORA_DISK_1: zarchiwizowana kopia dziennika zakończona, upływ czasu: 00:00:01 kanał ORA_DISK_1: rozpoczęcie zarchiwizowanej kopii dziennika wejście zarchiwizowany wątek dziennika = 1 sekwencja = 42 RECID = 36 STAMP = 629553646 nazwa pliku wyjściowego = E: \ ORACLE \ PRODUCT \ 11.1.0 \ DB_1 \ RDBMS \ ARC00042_0629061547.001 RECID = 0 STAMP = 0 kanał ORA_DISK_1: zarchiwizowana kopia dziennika ukończona, upływ czasu: 00:00:01 Zakończono tworzenie kopii zapasowej o 02-AUG-07 wpisany do katalogu zarchiwizowany dziennik zarchiwizowany plik dziennika nazwa = E: \ ORACLE \ PRODUCT \ 11.1.0 \ DB_1 \ RDBMS \ ARC00042_0629061547.001 RECID = 1 STAMP = 629553800 wpisany do katalogu zarchiwizowany dziennik zarchiwizowany plik dziennika nazwa = E: \ ORACLE \ PRODUCT \ 11.1.0 \ DB_1 \ RDBMS \ ARC00042_0629061547.001 RECID = 2 STAMP = 629553800 plik danych 2 przełączony na kopiowanie pliku danych kopiowanie pliku danych wejściowych RECID = 1 STAMP = 62955380 0 nazwa pliku = E: \ ORACLE \ ORADATA \ TEST \ SYSAUX01.DBF plik danych 3 przełączony na kopię pliku danych kopia wejściowa pliku danych RECID = 2 STAMP = 629553801 nazwa pliku = E: \ ORACLE \ ORADATA \ TEST \ UNDOTBS01.DBF zawartość skryptu pamięci : ustawione do scn 833606; odzyskaj bazę danych klonów usuń archiwum;  wykonywanie polecenia Memory Script: SET do klauzuli Rozpoczynanie odtwarzania w 02-AUG-07 przy użyciu kanału ORA_AUX_DISK_1 plik danych 4 nie został przetworzony, ponieważ plik jest tylko do odczytu, rozpoczynając zarchiwizowany dziennik odzyskiwania nośnika dla wątku 1 z sekwencją 42, który jest już na dysku jako plik E: \ ORACLE \ PRODUCT \ 11.1.0 \ DB_1 \ RDBMS \ ARC00042_0629061547.001 nazwa zarchiwizowanego pliku dziennika = E: \ ORACLE \ PRODUCT \ 11.1.0 \ DB_1 \ RDBMS \ ARC00042_0629061547.001 wątek = 1 sekwencja = Odzyskiwanie 42 nośników zakończone, upłynęło czas: 00:00:01 Zakończono odzyskiwanie o 02-AUG-07 zawartości skryptu pamięci: natychmiastowe zamknięcie klonu; start clone nomount;  wykonywanie bazy danych Memory Script odłączona Instancja Oracle zamknięta podłączona do pomocniczej bazy danych (nie uruchomiona) Instancja Oracle uruchomiona Total System Global Area 263639040 bajtów Stały rozmiar 1332544 bajtów Zmienna wielkość 83888832 bajtów Bufory bazy danych 171966464 bajtów Ponów bufory 6451200 bajtów instrukcja sql: CREATE CONTROLFILEUSE REUSE SET "TEST" BAZY DANYCH RESETLOGI ARCHIWELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 ('E: \ ORACLE \ ORADATA \ TEST \ REDO01.LOGLE') SIZE 50 M EUSE: \ ODATA \ TEST \ REDO02.LOG ') ROZMIAR 50 M REUSE, GROUP 3 (' E: \ ORACLE \ ORADATA \ TEST \ REDO03.LOG ') ROZMIAR 50 M REUSE DATAFILE' E: \ ORACLE \ ORADATA \ TEST \ SYSTEM01.DBF ' ZESTAW ZNAKÓW zawartość skryptu pamięci AL32UTF8: ustaw nową nazwę pliku tymczasowego 1 na "E: \ ORACLE \ ORADATA \ TEST \ TEMP01.DBF"; przełącznik clone tempfile all; katalog klon datafilecopy "E: \ ORACLE \ ORADATA \ TEST \ SYSAUX01.DBF"; katalog klon datafilecopy "E: \ ORACLE \ ORADATA \ TEST \ UNDOTBS01.DBF"; przełącz clone datafile all;  wykonuję polecenie wykonywania skryptu pamięci: SET NEWNAME zmieniono nazwę pliku tymczasowego 1 na E: \ ORACLE \ ORADATA \ TEST \ TEMP01.DBF w pliku sterującym wpisanym do katalogu kopia pliku danych kopia pliku danych nazwa pliku = E: \ ORACLE \ ORADATA \ TEST \ SYSAUX01.DBF RECID = 1 STAMP = 629553825 wpisana do katalogu kopia pliku danych kopia pliku danych nazwa pliku = E: \ ORACLE \ ORADATA \ TEST \ UNDOTBS01.DBF RECID = 2 STAMP = 629553826 plik danych 2 przełączony na kopię pliku danych kopia pliku danych wejściowych RECID = 1 STAMP = 629553825 nazwa pliku = E: \ ORACLE \ ORADATA \ TEST \ SYSAUX01.DBF plik danych 3 został przełączony na kopię pliku danych kopia wejściowa pliku danych RECID = 2 STAMP = 629553826 nazwa pliku = E: \ ORACLE \ ORADATA \ TEST \ UNDOTBS01.DBF zawartość skryptu pamięci: Zmień sklonowaną bazę danych otwórz resetlogs;  wykonanie bazy danych Memory Script otworzyło zawartość skryptu pamięci: katalog clone datafilecopy "E: \ ORACLE \ ORADATA \ TEST \ USERS01.DBF"; przełącz clone datafile 4 na datafilecopy "E: \ ORACLE \ ORADATA \ TEST \ USERS01.DBF"; #online klon przestrzeni tabel tylko do odczytu "zmień przestrzeń tabel USERS online";  wykonywanie skatalogowanego skryptu pamięci kopii pliku danych kopia pliku danych kopia pliku nazwa = E: \ ORACLE \ ORADATA \ TEST \ USERS01.DBF RECID = 3 STAMP = 629553870 plik danych 4 przełączony na kopię pliku danych kopia pliku danych wejściowych RECID = 3 STAMP = 629553870 nazwa pliku = E: \ ORACLE \ ORADATA \ TEST \ USERS01.DBF instrukcja sql: zmiana obszaru tabel USERS online Ukończono Duplikat bazy danych o 02-AUG-07




Jeszcze bez komentarzy

Zbiór przydatnych informacji o systemie operacyjnym Linux i nowych technologiach
Świeże artykuły, praktyczne wskazówki, szczegółowe recenzje i poradniki. Poczuj się jak w domu w świecie systemu operacyjnego Linux