通过恢复影像副本,简单地修改数据文件名并把数据库恢复回来,
操作起来简单,比cp方式更省事。
----使用 SET NEWNAME 切换文件:
---创建测试表空间,数据文件放在/home/oracle/oradata/目录下:
--创建测试表空间:
SQL> create tablespace ts_xxf datafile '/home/oracle/oradata/ts_xxf_01.dbf' size 10m;
Tablespace created.
--查看表空间:
SQL> select file_name from dba_data_files where tablespace_name='TS_XXF';
FILE_NAME
--------------------------------------------------------------------------
/home/oracle/oradata/ts_xxf_01.dbf
---通过RMAN切换数据文件路径:
[oracle@enmo ~]$ rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Mon Nov 7 10:56:01 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: PROD (DBID=338469376)
RMAN> run
2> {ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
3> SQL "ALTER TABLESPACE ts_xxf OFFLINE IMMEDIATE";
4> SET NEWNAME FOR DATAFILE '/home/oracle/oradata/ts_xxf_01.dbf'
5> TO '/u01/app/oracle/oradata/PROD/ts_xxf_01.dbf';
6> RESTORE TABLESPACE ts_xxf;
7> SWITCH DATAFILE ALL;
8> RECOVER TABLESPACE ts_xxf;
9> SQL "ALTER TABLESPACE ts_xxf ONLINE";
10> }
#rman执行语句块。
using target database control file instead of recovery catalog
allocated channel: c1
channel c1: SID=57 device type=DISK
sql statement: ALTER TABLESPACE ts_xxf OFFLINE IMMEDIATE
executing command: SET NEWNAME
Starting restore at 07-NOV-16
creating datafile file number=6 name=/u01/app/oracle/oradata/PROD/ts_xxf_01.dbf
restore not done; all files read only, offline, or already restored
Finished restore at 07-NOV-16
datafile 6 switched to datafile copy
input datafile copy RECID=3 STAMP=927284407 file name=/u01/app/oracle/oradata/PROD/ts_xxf_01.dbf
Starting recover at 07-NOV-16
starting media recovery
media recovery complete, elapsed time: 00:00:01
Finished recover at 07-NOV-16
sql statement: ALTER TABLESPACE ts_xxf ONLINE
released channel: c1
RMAN>
#完成。
---再次查看TS_XXf表空间数据文件的位置:
SQL> select file_name from dba_data_files where tablespace_name='TS_XXF';
FILE_NAME
--------------------------------------------------------------------------
/u01/app/oracle/oradata/PROD/ts_xxf_01.dbf
---切换完毕后,删除原来的数据文件:
SQL> !ls /home/oracle/oradata/ts_xxf_01.dbf
/home/oracle/oradata/ts_xxf_01.dbf
SQL> !rm /home/oracle/oradata/ts_xxf_01.dbf
[oracle@enmo ~]$ ls
dirhome homedir mydoc mydoc.zip oradata
[oracle@enmo ~]$ cd oradata/
[oracle@enmo oradata]$ ls
[oracle@enmo oradata]$
#已经成功删除旧的数据文件。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31392094/viewspace-2127953/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31392094/viewspace-2127953/