Привет

Позволю себе дать уточнение к вопросу
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

С уважением.

Ламп Александр
Руководитель группы Системных администраторов.
ГПО "Воткинский завод"