Baza danych w trybie gotowości fizycznej opiera się na ciągłym stosowaniu dzienników archiwalnych z podstawowej bazy danych w celu synchronizacji z nią. W wersjach Oracle Database wcześniejszych niż 10g w przypadku zaginięcia lub uszkodzenia dziennika archiwum konieczne było odbudowanie rezerwowej bazy danych od podstaw. Od 10g możesz użyć przyrostowej kopii zapasowej z SCN i odzyskać zapasową bazę danych, używając tego samego, aby zrekompensować brakujące dzienniki archiwum. W tym artykule zobaczymy, jak odzyskać zapasową bazę danych z brakującego dziennika archiwum
Oto kroki, jak odzyskać zapasową bazę danych z brakującego dziennika archiwum
Krok 1:
W rezerwowej bazie danych sprawdź aktualny numer SCN
sqlplus "/ as sysdba" SQL>set numwidth 30; SQL>select current_scn from v$database; CURRENT_SCN ----------- 6746747647647
Krok 2 :
W podstawowej bazie danych utwórz potrzebną przyrostową kopię zapasową z powyższego SCN
rman target / RMAN> { allocate channel c1 type disk; BACKUP INCREMENTAL FROM SCN 6746747647647 DATABASE FORMAT /tmp/inc_standby_%U'; }
Możemy użyć pracowników równoległych, aby przyspieszyć tworzenie kopii zapasowej, jeśli baza danych wygenerowała wiele zmian
run {allocate channel d1 type disk; allocate channel d2 type disk; allocate channel d3 type disk; allocate channel d4 type disk; allocate channel d5 type disk; allocate channel d6 type disk; allocate channel d7 type disk; allocate channel d8 type disk; allocate channel d9 type disk; allocate channel d10 type disk; BACKUP INCREMENTAL FROM SCN 6746747647647 DATABASE FORMAT /tmp/inc_standby_%U'; }
Krok 3:
Anuluj zarządzane odzyskiwanie w rezerwowej bazie danych
sqlplus "/ as sysdba" SQL>alter database recover managed standby database cancel; Media recovery complete.
Krok 4:
- Przenieś pliki kopii zapasowej na serwer zapasowy do folderu /tmp.
- Kataloguj pliki przyrostowej kopii zapasowej w rezerwowej bazie danych
rman target / RMAN> CATALOG START WITH '/tmp/'; searching for all files that match the pattern /tmp/ List of Files Unknown to the Database =====================================…… Do you really want to catalog the above files (enter YES or NO)? YES cataloging files… cataloging done
Krok 5:
Zastosuj przyrostową kopię zapasową do rezerwowej bazy danych
rman target / RMAN>RECOVER DATABASE NOREDO;
Krok 6:
Przełącz rezerwową bazę danych z powrotem do zarządzanego trybu odzyskiwania.
sqlplus "/ as sysdba" SQL>recover managed standby database disconnect; Media recovery complete.
W alert.log zauważysz, że rezerwowa baza danych nadal szuka starych plików dziennika
FAL[client]: Failed to request gap sequence GAP - thread 1 sequence ….
Dzieje się tak, ponieważ plik kontrolny nie został zaktualizowany. Dlatego plik kontrolny gotowości musi zostać odtworzony
Krok 7:
Na podstawowym utwórz nowy plik kontrolny trybu gotowości
sqlplus "/ as sysdba" SQL> alter database create standby controlfile as ‘/tmp/standby01.ctl’; System altered.
Krok 8:
Przechwyć informacje o pliku danych w bazie danych STANDBY.
Należy odświeżyć plik kontrolny trybu gotowości z kopii zapasowej wykonanej w kroku #7. Ponieważ nazwy plików danych prawdopodobnie różnią się od podstawowych, po odtworzeniu pliku kontrolnego z podstawowej kopii zapasowej zapisz nazwy rezerwowych plików danych w celach informacyjnych. Uruchom poniższe zapytanie w rezerwowej bazie danych i zapisz wyniki do dalszego wykorzystania.
spool standby_datafile_names.txt
set pagesize 1000;
set lines 200
col name format a60
select file#, name from v$datafile order by file# ;
spool off
Krok 9:
Skopiuj plik kontrolny stanu gotowości do witryny gotowości. Zamknij rezerwową bazę danych, zastąp zapasowe pliki kontrolne i uruchom ponownie rezerwową bazę danych w zarządzanym trybie odzyskiwania za pomocą poniższego polecenia
RMAN> SHUTDOWN IMMEDIATE ; RMAN> STARTUP NOMOUNT; RMAN> RESTORE STANDBY CONTROLFILE FROM '/tmp/standby01.ctl';
Krok 10:
Zamontuj tryb gotowości
RMAN> ALTER DATABASE MOUNT;
Krok 11:
Ten krok jest wymagany, jeśli lokalizacja plików danych jest inna w trybie gotowości i podstawowym
Jeśli główny i rezerwowy mają identyczną strukturę i nazwy plików danych, ten krok można pominąć.
Oracle zaleca sprawdzenie inkarnacji w trybie podstawowym i gotowości przed wykonaniem tego kroku.
example:
RMAN> list incarnation;
Ponieważ przywróciliśmy plik kontrolny z PRIMARY, nazwy lokalizacji plików danych w tym przywróconym pliku kontrolnym STANDBY będą takie same jak w bazie danych PRIMARY. Jeśli struktura katalogów w rezerwowej i podstawowej bazie danych jest inna lub jeśli używasz nazw plików zarządzanych przez Oracle OMF, nie będzie można zidentyfikować plików rezerwowych. Możemy więc skatalogować pliki danych STANDBY za pomocą RMAN, aby wykonać operację zmiany nazwy.
Wykonaj poniższy krok w trybie GOTOWOŚCI dla każdej grupy dysków (lub katalogu), w której znajdują się pliki danych w trybie gotowości.
RMAN> CATALOG START WITH '+DATA/STBY/datafile/';
Jeśli jakiekolwiek pliki danych zostały dodane do serwera podstawowego PO kopii zapasowej SCN (w naszym przykładzie scn 6746747647647), te pliki danych nie zostaną automatycznie utworzone na serwerze rezerwowym, niezależnie od ustawienia parametru standby_file_management. Dodane pliki danych będą musiały zostać przywrócone na serwer rezerwowy. Aby określić, czy jakieś pliki zostały dodane do Podstawowego od czasu gotowości bieżącego SCN
SQL>SELECT FILE#, NAME FROM V$DATAFILE WHERE CREATION_CHANGE# > 6746747647647
Jeśli zwróci jakieś wiersze, musimy przywrócić te pliki z trybu podstawowego do stanu gotowości
RMAN> backup datafile <missing-1>,<missing-2> ,<missing-3> , format '/tmp/ForStandby_%U' tag 'FORSTANDBY';
Skopiuj je do trybu gotowości, a następnie skataloguj i przywróć
CATALOG START WITH '/tmp/ForStandby'; run { set newname for datafile X to '+DISKGROUP'; set newname for datafile Y to '+DISKGROUP'; set newname for datafile Z to '+DISKGROUP'; etc. restore datafile x,y,z,….; }
Teraz możemy przełączyć bazę danych na kopię
RMAN> SWITCH DATABASE TO COPY;
Jeśli powyższe zapytanie zwróci 0 wierszy zerowych
RMAN> SWITCH DATABASE TO COPY;
Krok 11
W GOTOWOŚCI bazy danych, wyczyść wszystkie grupy logów w trybie gotowości:
SQL> wybierz GROUP# z v$logfile gdzie TYPE='STANDBY' group według GROUP#;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 3;
….
Krok 12
Teraz możesz rozpocząć MRP
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
Mamy nadzieję, że spodobają Ci się te szczegółowe kroki dotyczące odzyskiwania rezerwowej bazy danych z brakującego dziennika archiwum. Prosimy o przesłanie opinii. Może wystąpić błąd.
Też czyta
Brak ASM do ASM
jak znaleźć numer sekwencyjny dziennika archiwum w Oracle
jak sprawdzić błędy dziennika alertów w Oracle
Polecenia tworzenia kopii zapasowych RMAN
Polecenia tworzenia kopii zapasowych RMAN
Kroki do wykonania dla Rolling Forward Fizycznej Bazy Danych przy użyciu przyrostowej kopii zapasowej RMAN. (ID dokumentu 836986.1)