测试环境:ORACLE 10.2.0.4 + ASM
有两种方法可以实现从ASM到文件系统的数据文件移动
1、 数据库RUNNING状态
在数据库处于OPEN状态时,要想移动数据库从ASM到文件系统,则必须使相关表空间OFFLINE
1.1、 确认被移动数据文件所在表空间
SQL> select tablespace_name,file_name from dba_data_files where file_id=5;
TABLESPACE_NAME FILE_NAME
------------------------------ -----------------------------------------------
OCPTBS +XINER_DATA/xiner/datafile/ocptbs.268.745970939
1.2、 离线表空间OCPTBS
SQL> alter tablespace OCPTBS offline;
Tablespace altered.
1.3、 登录RMAN并COPY数据库从ASM到文件系统
RMAN> copy datafile 5 to '/home/oracle/wangz/liglewang.dbf';
Starting backup at 07-APR-2011 02:45:56
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=153 devtype=DISK
channel ORA_DISK_1: starting datafile copy
input datafile fno=00005 name=+XINER_DATA/xiner/datafile/ocptbs.268.745970939
output filename=/home/oracle/wangz/liglewang.dbf tag=TAG20110407T024557 recid=1 stamp=747801964
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07
Finished backup at 07-APR-2011 02:46:05
Starting Control File and SPFILE Autobackup at 07-APR-2011 02:46:05
piece handle=/u01/app/oracle/product/10.2.0/db_1/dbs/c-4034639180-20110407-01 comment=NONE
Finished Control File and SPFILE Autobackup at 07-APR-2011 02:46:08
1.4、 更新控制文件以使其可识别到新路径下的数据文件
SQL> alter database rename file '+XINER_DATA/xiner/datafile/ocptbs.268.745970939' to '/home/oracle/wangz/liglewang.dbf';
Database altered.
1.5、 验证数据文件
SQL> select tablespace_name,file_name from dba_data_files where file_id=5;
TABLESPACE_NAME FILE_NAME
------------------------------ -----------------------------------------------
OCPTBS /home/oracle/wangz/liglewang.dbf
1.6、 ONLINE表空间
SQL> alter tablespace OCPTBS online;
Tablespace altered.
至此,ASM中的数据文件5已被成功移动到了文件系统。
2、 数据库处于MOUNT状态或者SHUTDOWN
2.1、先shutdown然后再mount
SQL> shutdown immediate
SQL> startup mount
2.2、使用RMAN进行COPY
RMAN> copy datafile 4 to '/home/oracle/users.dbf';
2.3、更新控制文件以使其可识别到新路径下的数据文件
SQL> alter database rename file '+XINER_DATA/xiner/datafile/users.266.745002877' to '/home/oracle/users.dbf';
Database altered.
2.4、查询字典DBA_DATA_FILES验证数据库,然后打开数据库
SQL> alter database open;
Database altered.
以上两种方式都是通过RMAN进行COPY的,并且COPY后,ASM上的数据库文件会自动被Oracle删除。参考文档:
Metalink: How to move a datafile from ASM to the file system [ID 390416.1]
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25834554/viewspace-707640/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25834554/viewspace-707640/