Oracle
 sql >> Baza danych >  >> RDS >> Oracle

jak odzyskać zapasową bazę danych z brakującego dziennika archiwum?

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

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)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Instalowanie pakietu Oracle 9i Developer Suite 2.0 w systemie Windows

  2. Oracle ODP.Net z Entity Framework 6 — nie można znaleźć dostawcy zgodnego z bazą danych Entity Framework

  3. 7 rzeczy, które warto wiedzieć o przedziałach w Oracle Cloud Infrastructure

  4. Zapamiętaj instancje RAC w narzędziach Perf

  5. PL/SQL:jak monitować użytkownika o wprowadzenie danych w procedurze?