Привет
Позволю себе дать уточнение к вопросу
http://dsvolk.msk.ru/oracle/faq/dba.php#rman_nocatalog
A: Оказывается (и это документировано), что если Вы восстанавливает БД
8.1.7 с помощью rman без использования каталога, то делать это можно
только когда БД смонтирована. А раз так, то нужен controlfile. Да и
еще такой, в котором записаны Ваши последние выполненный резервные
копирования. Т.е. Вам необходимо выполнять резервное копирования
controlfile отдельно от копирования БД.
Вводная:
http://download-west.oracle.com/docs/cd/A87860_01/doc/server.817/a76990/rmanreco.htm#441496
Есть вариает, все сделать через RMAN и без каталога.
Ниже я приведу рабочие пример скрипта горячего архивирования базы, и
фрагмент инструкции восстановления базы из такого backup.
Суть:
- backup controlfile делается RMAN сразу после backup базы и содержит информацию о
нем;
- начинать восстанавливать базу можно без предварительного
монтирования базы, controlfile из backup достать можно средствами RMAN
скрипт горячего архивирования базы
----------------------------------
connect target /;
sql 'ALTER SYSTEM ARCHIVE LOG CURRENT';
run {
allocate channel ch1 type disk;
backup database format='F:\DB_RMAN_ARCHIVE\%d\%d_DB_%u.RMAN';
sql 'ALTER SYSTEM ARCHIVE LOG CURRENT';
backup archivelog from logseq = 4391
format='F:\DB_RMAN_ARCHIVE\%d\%d_AL_%u.RMAN';
backup current controlfile format='F:\DB_RMAN_ARCHIVE\%d\%d_CF_%u.RMAN';
}
фрагмент инструкции восстановления базы из такого backup
---------------------------------------------------
7. Создал Ораклячий сервис для T844 через oradim
oradim -new -sid T844 -intpwd *** -startmode manual -pfile d:\t844\initt844.ora
8. В listener.ora прописать сервис T844 (пример взять в архиве)
9. set local=t844
10. svrmgrl
connect internal
startup nomount pfile=d:\t844\initt844.ora;
DECLARE
devtype varchar2(256);
done boolean;
BEGIN
devtype := dbms_backup_restore.deviceallocate(NULL, params=>'');
dbms_backup_restore.restoresetdatafile;
dbms_backup_restore.restorecontrolfileto('g:\t844\CTL1P84.ORA');
dbms_backup_restore.restorebackuppiece('F:\DB_RMAN_ARCHIVE\T844\T844_CF_0LELP54B',don
e=>done);
dbms_backup_restore.devicedeallocate();
END;
-- g:\t844\CTL1P84.ORA - реальное местоположение 1-го ctrl файла см. в dbinfo.txt
-- F:\DB_RMAN_ARCHIVE\T844\T844_CF_0LELP54B - файл от RMAN с архивом ctrl файла
host copy g:\t844\CTL1P84.ORA h:\t844\CTL2P84.ORA;
-- h:\t844\CTL2P84.ORA;- реальное местоположение и кол-во ctrl файлов см. в
dbinfo.txt
alter database mount;
11. set nls_date_format=DD.MM.YYYY HH24:MI:SS
rman nocatalog
connect target internal/***@t844
run
{
-- set until time используется при восстановление на определенный момент времени.
-- set until time '25.06.2003 18:00:00';
allocate channel ch1 type disk;
restore database;
recover database;
}
...
дальше идет накатка archlogs
С уважением.
Ламп Александр
Руководитель группы Системных администраторов.
ГПО "Воткинский завод"