测试环境:ORACLE 10.2.0.4 + ASM
把数据库文件从文件系统移动到ASM,跟之前介绍的将ASM磁盘中的数据文件移动到文件其实差不多,也是有两种方法可以实现,分别在数据库关闭或者挂在状态和在数据库运行时把涉及到的表空间OFFLINE,下面我们通过实际操作来介绍下:
数据库处于RUNNING(OPEN)状态
1、 确认要移动的数据文件
SQL>
select file_id,file_name,tablespace_name from dba_data_files where file_id=4;
FILE_ID FILE_NAME TABLESPACE_NAME
---------- --------------------------------------------------
------------------------------
4 /home/oracle/users.dbf USERS
2、 OFFLINE表空间USERS
SQL>
alter tablespace users offline;
Tablespace altered.
3、 通过RMAN进行COPY
RMAN>
copy datafile 4 to '+XINER_DATA';
Starting backup at 07-APR-2011 12:35:51
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile fno=00004 name=/home/oracle/users.dbf
output filename=+XINER_DATA/xiner/datafile/users.266.747837351
ag=TAG20110407T123551 recid=3 stamp=747837353
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
Finished backup at 07-APR-2011 12:35:54
Starting Control File and SPFILE Autobackup at 07-APR-2011 12:35:54
piece handle=/u01/app/oracle/product/10.2.0/db_1/dbs/c-4034639180-20110407-07
comment=NONE
Finished Control File and SPFILE Autobackup at 07-APR-2011 12:35:57
4、 更新控制文件以便其可以识别新路径下的数据文件
RMAN>
switch datafile 4 to copy;
datafile 4 switched to datafile copy
"+XINER_DATA/xiner/datafile/users.266.747837351"
5、 确认数据文件已被迁至ASM磁盘组
SQL>
select file_name,tablespace_name from dba_data_files where file_id=4;
FILE_NAME TABLESPACE_NAME
--------------------------------------------------
------------------------------
+XINER_DATA/xiner/datafile/users.266.747837351 USERS
另外一种方式就是将数据库关闭(shutdown)或者启动到MOUNT状态,然后通过RMAN进行copy,更以上面的步骤几乎一样,我就省略不写了,有什么问题,欢迎大家留言~
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25834554/viewspace-707653/ ,如需转载,请注明出处,否则将追究法律责任。