Резервирование и восстановление данных Oracle с помощью программы RMAN - Восстановление данных
ОГЛАВЛЕНИЕ
Восстановление данных
- | Для восстановления данных целевая БД должна находиться в состоянии NOMOUNT/ MOUNT/ OPEN в зависимости от характера восстановления, например |
- |
|
- |
|
- |
|
- | Восстановление файлов (с данными и служебных) выполняется в RMAN командой RESTORE. |
- | Восстановление данных выполняется либо в RMAN, либо в SQL*Plus командами RECOVER при условии наличия восстановленных файлов. |
Восстановление до момента сбоя (<последнего момента>)
Некоторые примеры восстановления:
RMAN> RECOVER DATABASE;
RMAN> RECOVER TABLESPACE users;
RMAN> RECOVER DATAFILE 'd:\oracle\oradata\teacher\users01.dbf';
RMAN> RESTORE CONTROLFILE;
RMAN> RUN {
2> SET ARCHIVELOG DESTINATION TO 'd:\oracle\oradata\archive';
3> RESTORE ARCHIVELOG ALL; }
Восстановление пространств, закрытых на запись:
RMAN> SQL "ALTER TABLESPACE lookup_data OFFLINE";
RMAN> RECOVER TABLESPACE lookup_data;
RMAN> SQL "ALTER TABLESPACE lookup_data ONLINE";
Восстановление до указанного момента в прошлом
БД, работающую в режиме архивирования журнала, можно восстанавливать до определенного указанного момента с помощью фраз UNTIL {TIME : | SCN : | SEQUENCE : THREAD:}. Пример:
RMAN> RESTORE DATABASE; # восстановили файлы
RMAN> RECOVER DATABASE UNTIL SCN 375831; # восстановили БД
RMAN> ALTER DATABASE OPEN RESETLOGS; # сбросили журнал
Восстановление БД (вторая и третья строчки выше) можно выполнить и в SQL*Plus:
SQL > RECOVER DATABASE UNTIL CANCEL;
SQL> ALTER DATABASE OPEN RESETLOGS;
При таком восстановлении необходимо сбросить онлайновый журнал. После этого, как и при традиционном восстановлении со сбросом журналов (RESETLOGS), необходимо снять полную копию БД, так как с этого момента восстановление с более ранних резервных копий станет невозможным из-за того, что история журнальных записей прерывается.