Страница 1 из 1

Восстановление БД

Добавлено: 01 июл 2013, 17:22
Kogep
Восстановление БД
1. Скопировать и откорректировать pfile (его надо тоже бэкапить)
2. Создать файл паролей:

Код: Выделить всё

CMD > orapwd file=pwdMAGIC757.ora password=<пароль>

3. Создать службу

Код: Выделить всё

CMD > oradim -new –sid MAGIC757 -startmode auto -pfile <pfile>

4. Настроить listener и tnsnames.
Не забыть перезапустить службу listener’а.
5. Запустить rman

Код: Выделить всё

CMD > rman target sys/<пароль>

6.

Код: Выделить всё

rman > startup force nomount;

7.

Код: Выделить всё

rman > set DBID=<dbid>;
(можно взять из лога бэкапа)
8.

Код: Выделить всё

rman > startup force nomount pfile=<pfile>;

9.

Код: Выделить всё

set controlfile autobackup format for device type disk to '<путь к последнему дневному бэкапу>\%F';

9. Восстановить control-файл. Восстановятся по тем путям, которые указали в pfile.

Код: Выделить всё

rman > restore controlfile from autobackup;

10.

Код: Выделить всё

rman > alter database mount;

11.

Код: Выделить всё

rman > catalog start with ‘<путь к бэкупу>’;
(при необходимости; list backup покажет уже закаталогизированные бэкапы)
Без этой команды не получится указать новые пути для файлов БД в следующем пункте.
12. Восстановить БД.

Код: Выделить всё

RMAN > run
{
ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
SET NEWNAME FOR TEMPFILE 1 TO 'D:\ORACLE\ORADATA\MAGIC757\TEMP01.DBF';
SET NEWNAME FOR DATAFILE 1 TO 'D:\ORACLE\ORADATA\MAGIC757\SYSTEM01.DBF';
SET NEWNAME FOR DATAFILE 2 TO 'D:\ORACLE\ORADATA\MAGIC757\UNDO01.DBF';
SET NEWNAME FOR DATAFILE 3 TO 'D:\ORACLE\ORADATA\MAGIC757\USERS01.DBF';
SET NEWNAME FOR DATAFILE 4 TO 'D:\ORACLE\ORADATA\MAGIC757\TOOLS01.DBF';
SET NEWNAME FOR DATAFILE 5 TO 'D:\ORACLE\ORADATA\MAGIC757\MG_TABLE.DBF';
SET NEWNAME FOR DATAFILE 6 TO 'D:\ORACLE\ORADATA\MAGIC757\MG_LOB.DBF';
SET NEWNAME FOR DATAFILE 7 TO 'D:\ORACLE\ORADATA\MAGIC757\INDX01.DBF';
SET NEWNAME FOR DATAFILE 8 TO 'D:\ORACLE\ORADATA\MAGIC757\MG_INDX.DBF';
SET NEWNAME FOR DATAFILE 9 TO 'D:\ORACLE\ORADATA\MAGIC757\MG_INDX_JOURNAL01.DBF';
SET NEWNAME FOR DATAFILE 10 TO 'D:\ORACLE\ORADATA\MAGIC757\PC_JOURNAL01.DBF';
SET NEWNAME FOR DATAFILE 11 TO 'D:\ORACLE\ORADATA\MAGIC757\PC_JOURNAL_OFF.DBF';
SET NEWNAME FOR DATAFILE 12 TO 'D:\ORACLE\ORADATA\MAGIC757\MG_INDX_JOURNAL02.DBF';
SET NEWNAME FOR DATAFILE 13 TO 'D:\ORACLE\ORADATA\MAGIC757\PC_JOURNAL02.DBF';
SET NEWNAME FOR DATAFILE 14 TO 'D:\ORACLE\ORADATA\MAGIC757\UNDO02.DBF';
SET NEWNAME FOR DATAFILE 15 TO 'D:\ORACLE\ORADATA\MAGIC757\MG_TABLE_LARGE.DBF';
SET NEWNAME FOR DATAFILE 16 TO 'D:\ORACLE\ORADATA\MAGIC757\MG_INDX_LARGE.DBF';
SET NEWNAME FOR DATAFILE 17 TO 'D:\ORACLE\ORADATA\MAGIC757\SYSAUX01.DBF';
SET NEWNAME FOR DATAFILE 18 TO 'D:\ORACLE\ORADATA\MAGIC757\MG_INDX_LARGE01.DBF';
SQL "ALTER DATABASE RENAME FILE ''D:\ORACLE\ORADATA\MAGIC757\LOG1\REDO1.LOG''
      TO ''D:\ORACLE\ORADATA\MAGIC757\REDO11.LOG'' ";
SQL "ALTER DATABASE RENAME FILE ''E:\ORACLE\ORADATA\MAGIC757\LOG2\REDO1.LOG''
      TO ''D:\ORACLE\ORADATA\MAGIC757\REDO21.LOG'' ";
SQL "ALTER DATABASE RENAME FILE ''D:\ORACLE\ORADATA\MAGIC757\LOG1\REDO2.LOG''
      TO ''D:\ORACLE\ORADATA\MAGIC757\REDO12.LOG'' ";
SQL "ALTER DATABASE RENAME FILE ''E:\ORACLE\ORADATA\MAGIC757\LOG2\REDO2.LOG''
      TO ''D:\ORACLE\ORADATA\MAGIC757\REDO22.LOG'' ";
SQL "ALTER DATABASE RENAME FILE ''D:\ORACLE\ORADATA\MAGIC757\LOG1\REDO3.LOG''
      TO ''D:\ORACLE\ORADATA\MAGIC757\REDO13.LOG'' ";
SQL "ALTER DATABASE RENAME FILE ''E:\ORACLE\ORADATA\MAGIC757\LOG2\REDO3.LOG''
      TO ''D:\ORACLE\ORADATA\MAGIC757\REDO23.LOG'' ";
set until SCN 706790959;
RESTORE DATABASE;
SWITCH DATAFILE ALL;
SWITCH TEMPFILE ALL;
RECOVER DATABASE;
}

Цифру из инструкции SET UNTIL можно узнать след. образом:
- list backup of archivelog all;
- посмотреть Next SCN у последней последовательности.
В принципе, можно SET UNTIL упустить.
13.

Код: Выделить всё

RMAN > ALTER DATABASE OPEN RESETLOGS;


Мои потуги восстановить БД: http://www.sql.ru/forum/1031159-1/vosstanovlenie-bd-na-druguu-mashinu

Ссылки:
1. http://systemadministrators.ru/node/12
2. http://docs.oracle.com/cd/E11882_01/backup.112/e10642/rcmadvre.htm#i1006746
3. http://docs.oracle.com/cd/B19306_01/backup.102/b14192/recov004.htm
4. http://citforum.ru/database/oracle/rectable/
5. http://www.oracledistilled.com/oracle-database/restore-database-to-another-host-using-rman/
6. http://docs.oracle.com/cd/B28359_01/backup.111/b28270/toc.htm

Др. полезные ссылки:
1. http://www.askrenzo.com/oracle/DBMS_SQLPA_invalid.html (исправление ошибок при восстановлении БД)
2. http://citforum.ru/database/oracle/rman/ (BACKUP)