rman里面用的
run
{
set new datafile 1 to 'c:\new\1.dbf';
restore database;
--现在,需要把文件的新位置写到控制文件
sql 'alter database rename datafile 1 to ..';
--当然,如果有很多个,用:
switch datafile all;
}
After the RESTORE command but before the RECOVER command in your RUN
block, use a SWITCH command to update the control file with the new
filenames of the datafiles. The SWITCH command is equivalent to the
SQL statement ALTER DATABASE RENAME FILE. SWITCH DATAFILE ALL updates
the control file to reflect the new names for all datafiles for
which a SET NEWNAME has been issued in the RUN block.
RUN
{
SQL 'ALTER TABLESPACE users OFFLINE IMMEDIATE';
SQL 'ALTER TABLESPACE tools OFFLINE IMMEDIATE';
# specify the new location for each datafile
SET NEWNAME FOR DATAFILE '/olddisk/users01.dbf' TO
'/newdisk/users01.dbf';
SET NEWNAME FOR DATAFILE '/olddisk/tools01.dbf' TO
'/newdisk/tools01.dbf';
# to restore to an ASM disk group named dgroup, use:
# SET NEWNAME FOR DATAFILE '/olddisk/trgt/tools01.dbf'
# TO '+dgroup';
RESTORE TABLESPACE users, tools;
SWITCH DATAFILE ALL; # update control file with new filenames
RECOVER TABLESPACE users, tools;
}