版权声明:来自CSDN博客作者白昼的原创作品,如需转载,请注明出处,否则将追究法律责任。 https://blog.csdn.net/ronsarah/article/details/85333736
在Oracle Rac环境中,数据文件都是要存放在ASM共享存储上的,这样两个节点才能同时访问。而当你在某一节点下把数据文件创建在本地磁盘的时候,那么在另一节点上要访问该数据文件的时候就会报错,因为找不到对应的文件,报错如下:
要解决以上问题,需要把该节点上的本地数据文件迁移到ASM中,下面用rman来实现迁移。
迁移步骤:
1、查看该节点下数据文件的位置:
su - oracle
sqlplus / as sysdba
set linesize 500;
col name for a90;
select file#,name from v$datafile;
2、 查看是否启用了归档模式:
archive log list;
3、在rman模式下把本地数据文件(datafile 6)复制到ASM盘(+DATA):
另开一个远程窗口,进入rman模式:
su - oracle
rman target/
复制本地数据文件到ASM盘中:
copy datafile 6 to '+DATA';
4、在sqlplus命令模式下把该数据文件修改为离线状态:
alter database datafile 6 offline;
5、在rman模式下把数据文件路径切换到刚才备份的ASM路径下:
switch datafile 6 to copy;
recover datafile 6;
6、在sqlplus命令模式下重新把该数据文件修改为在线状态:
alter database datafile 6 online;
7、再查看数据文件,已经迁移过来了:
8、在另一个节点查看数据文件,已经可以访问了: