catalog start with 是一个很好的命令. 有了这个命令后, 基本上可以不再使用catalog数据库了 . 因为可以通过这个命令将以前的备份集信息重新导入到当前控制文件中, 一般应用于使用rman恢复, 控制文件又是旧的或者是手工创建的(这样的控制文件当然没有最新的备份集的信息), 通过catalog start with 可以将最新的备份集以及归档日志文件列表导入到控制文中, 然后就可以进行rman的恢复了.
例如,拷贝备份集到 /data01 下 ,
RMAN> startup nomount;
RMAN> restore controlfile from '/data01/testdb_CF_c-3148051840-20110813-00'; # 从控制文件备份集恢复控制文件
RMAN> alter database mount;
catalog start with '/data01/'; (一定要用“/”结尾,不然找不到真实的路径)
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
set newname for datafile '+DATA/icare/datafile/system.309.717426483' to '/backup/supt/suptdata/system.309.717426483';
set newname for datafile '+DATA/icare/datafile/apps_undots1.283.717426031' to '/backup/supt/suptdata/apps_undots1.283.717426031'; set newname for datafile '+DATA/icare/datafile/apps_ts_tx_data.273.717426033' to '/backup/supt/suptdata/apps_ts_tx_data.273.717426033';
set newname for datafile '+DATA/icare/datafile/apps_ts_tx_data.275.717426033' to
set newname for datafile '+DATA/icare/onlinelog/group_16.265.743248917' to '/data02/supt/suptdata/group_16.265.743248917';
restore database force;
switch datafile all;
}
如果备份集存放在多个路径,可以多次执行
RMAN> catalog start with '/data01/';
RMAN>catalog start with '/data02/';
RMAN>catalog start with '/data03/';