Oracle
 sql >> база данни >  >> RDS >> Oracle

как да възстановите резервна база данни от липсващ архивен дневник

Базата данни за физическа готовност разчита на непрекъснатото прилагане на архивни регистрационни файлове от първична база данни, за да бъде в синхрон с нея. Във версиите на Oracle Database преди 10g в случай на изчезнал или повреден архивен журнал, трябваше да изградите отново резервната база данни от нулата. От 10g можете да използвате инкрементално архивиране от SCN и да възстановите режима на готовност, като използвате същото, за да компенсирате липсващите архивни регистрационни файлове. В това ще видим как да възстановим базата данни в режим на готовност от липсващ архивен дневник

Ето стъпките за това как да възстановите база данни в режим на готовност от липсващ архивен дневник

Стъпка 1:

В базата данни в режим на готовност проверете текущия SCN

sqlplus "/ as sysdba"SQL>задайте numwidth 30;SQL>изберете current_scn от v$database;CURRENT_SCN-----------6746747647647

Стъпка 2 :

В основната база данни създайте необходимото инкрементално архивиране от горния SCN

rman target /RMAN> {разпределяне на канал c1 тип диск; РЕЗЕРВНО ИНРЕМЕНТАЛНО ОТ SCN 6746747647647 DATABASEFORMAT /tmp/inc_standby_%U';}

Можем да използваме паралелни работници, за да ускорим създаването на резервно копие, ако базата данни е генерирала много промени

<предварително стартиране{разпределяне на канал d1 тип диск;разпределяне на канал d2 тип диск;разпределяне на канал d3 тип диск;разпределяне на канал d4 тип диск;разпределяне на канал d5 тип диск;разпределяне на канал d6 тип диск;разпределяне на канал тип d7 диск;разпределяне на канал d8 тип диск;разпределяне на канал d9 тип диск;разпределяне на канал d10 тип диск;РЕЗЕРВНО ИНРЕМЕНТАЛНО ОТ SCN 6746747647647 DATABASEFORMAT /tmp/inc_standby_%U';}

Стъпка 3:

Отменете управлявано възстановяване в резервната база данни

sqlplus "/ as sysdba"SQL>промяна на базата данни, възстановяване на управлявана база данни в готовност, отмяна; възстановяването на носителя завърши.

Стъпка 4:

  • scp архивните файлове към сървъра в режим на готовност в папка /tmp.
  • Каталогизирайте инкременталните архивни файлове в резервната база данни
rman target /RMAN> КАТАЛОГ ЗАПОЧНЕ С '/tmp/';търсене на всички файлове, които съответстват на шаблона /tmp/Списък с файлове, неизвестни за базата данни======================================…... Наистина ли искате да каталогизирате горните файлове (въведете ДА или НЕ)? ДА каталогизиране на файлове...извършено каталогизиране

Стъпка 5:

Приложете инкременталното архивиране към резервната база данни

rman target /RMAN>ВЪЗСТАНОВЯВАНЕ НА БАЗА ДАННИ NOREDO;

Стъпка 6:

Върнете резервната база данни в режим на управлявано възстановяване.

sqlplus "/ as sysdba"SQL>възстановяване на управлявана резервна база данни, прекъсване на връзката; Възстановяването на носителя завърши.

От alert.log ще забележите, че базата данни в режим на готовност все още търси старите регистрационни файлове

FAL[клиент]:Неуспешно заявяване на пропуск последователностGAP – нишка 1 последователност ….

Това е така, защото контролният файл не е актуализиран. Следователно контролният файл в режим на готовност трябва да бъде пресъздаден

Стъпка 7:

На основния създайте нов контролен файл в режим на готовност

sqlplus "/ as sysdba"SQL> промяна на базата данни, създаване на контролен файл в режим на готовност като ‘/tmp/standby01.ctl’;Системата е променена.

Стъпка 8:

Улавяйте информация за файла с данни в базата данни STANDBY.
Контролният файл в режим на готовност ще трябва да бъде опреснен от резервното копие, направено на стъпка №7. Тъй като имената на файловете с данни вероятно са различни от основните, запазете имената на вашите резервни файлове с данни за справка, след като възстановите контролния файл от основния архив. Изпълнете заявката по-долу в базата данни в режим на готовност и запазете резултатите за по-нататъшна употреба.

spool standby_datafile_names.txt
задайте размер на страницата 1000;
задайте редове 200
col име формат a60
изберете файл#, име от v$datafile подредете по файл#;
намотаване

Стъпка 9:

Копирайте контролния файл в режим на готовност в сайта в режим на готовност. Изключете базата данни в режим на готовност и заменете контролните файлове в режим на готовност и рестартирайте резервната база данни в режим на управлявано възстановяване, като използвате командата по-долу

RMAN> ИЗКЛЮЧВАНЕ НЕЗАБАВНО;RMAN> ЗАПУСКАНЕ NOMOUNT;RMAN> ВЪЗСТАНОВЯВАНЕ НА КОНТРОЛНИЯ ФАЙЛ ОТ '/tmp/standby01.ctl';

Стъпка 10:

Монтирайте режима на готовност

RMAN> ПРОМЕНИ МОНТИРАНЕ НА БАЗА ДАННИ;

Стъпка 11:

Тази стъпка е необходима, ако местоположението на файловете с данни е различно в режим на готовност и Основен

Ако основният и резервният имат идентична структура и имена на файлове с данни, тази стъпка може да бъде пропусната.

Oracle препоръчва да проверите инкарнацията за първично и в режим на готовност, преди да завършите тази стъпка.

пример:  
RMAN> въплъщение на списък;

Тъй като сме възстановили контролния файл от PRIMARY, имената на местоположението на файловете с данни в този възстановен STANDBY контролен файл ще бъдат същите като тези на PRIMARY базата данни. Ако структурата на директорията е различна между резервната и първичната база данни или ако използвате OMF имена на файлове, управлявани от Oracle, тогава той няма да може да идентифицира резервните файлове. Така че можем да каталогизираме файловете с данни STANDBY с RMAN, за да изпълним операцията за преименуване.

Изпълнете стъпката по-долу в STANDBY за всяка дискова група (или директория), където се намират файловете с данни в режим на готовност.

RMAN> КАТАЛОГ ЗАПОЧВА С '+DATA/STBY/datafile/';

Ако някакви файлове с данни са добавени към основния СЛЕД резервния SCN (в нашия пример, scn 6746747647647), тези файлове с данни няма да бъдат създадени на сървъра в режим на готовност независимо от настройката на параметъра за управление на standby_file_management. Добавените файлове с данни ще трябва да бъдат възстановени на сървъра в режим на готовност. За да определите дали някакви файлове са добавени към Основен след текущия SCN в режим на готовност

SQL>ИЗБЕРЕТЕ ФАЙЛ#, ИМЕ ОТ V$DATAFILE WHERE CREATION_CHANGE#> 6746747647647

Ако върне някакви редове, тогава трябва да възстановим тези файлове от първичен в режим на готовност

RMAN> архивен файл с данни , , , формат '/tmp/ForStandby_%U' маркер 'FORSTANDBY';

Копирайте ги в режим на готовност и след това ги каталогизирайте и възстановете

КАТАЛОГ ЗАПОЧНЕ С '/tmp/ForStandby';изпълни{задайте ново име за файл с данни X на '+DISKGROUP';задайте ново име за файл с данни Y на '+DISKGROUP';задайте ново име за файл с данни Z на '+DISKGROUP';и т.н. възстановяване на файла с данни x,y,z,….;}

Сега можем да превключим базата данни към копиране

RMAN> ПРЕКВЯНЕ НА БАЗА ДАННИ КЪМ КОПИРАНЕ;

Ако горната заявка се върне с 0 нула реда

RMAN> ПРЕКВЯНЕ НА БАЗА ДАННИ КЪМ КОПИРАНЕ;

Стъпка 11

Включено STANDBY база данни, изчистете всички дневници в режим на готовност:

SQL> изберете GROUP# от v$logfile, където TYPE='STANDBY' група от GROUP#;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2;
SQL> ПРОМЕНИ БАЗА ДАННИ ИЗЧИСТВАНЕ НА ГРУПА ЗА ЛОГФАЙЛ 3;
….

Стъпка 12

Сега можете да стартирате MRP

SQL> ПРОМЯНА НА БАЗА ДАННИ ВЪЗСТАНОВЯВА УПРАВЛЕНА БАЗА ДАННИ В РЕЖИМ ИЗКЛЮЧВАНЕ;

Надяваме се, че ви харесват тези подробни стъпки за това как да възстановите резервна база данни от липсващ архивен дневник. Моля, предоставете обратната връзка. Възможно е да има грешка.

Също чете
Не от ASM към ASM
как да намерите пореден номер на архивния дневник в oracle
как да проверите грешките в дневника за предупреждения в oracle
Команди за архивиране на RMAN
Команди за архивиране на RMAN списък
Стъпки за изпълнение за пренасочване на физическа резервна база данни с помощта на инкрементално архивиране на RMAN. (Идентификатор на документ 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. Как да конвертирам наследен израз за ляво външно присъединяване в Oracle?

  2. Кой е най-добрият начин за свързване между android и oracle база данни?

  3. Как да разрешите ORA-29285:грешка при запис на файл

  4. Има ли начин да принудим OracleCommand.BindByName да бъде истина по подразбиране за ODP.NET?

  5. java.lang.ClassCastException:oracle.sql.TIMESTAMP не може да бъде прехвърлен към java.sql.Timestamp