参考:RAC本地数据文件迁移至ASM的方法
系统环境:rhel6.2_x64+Oracle RAC11g
操作过程:
1.非归档模式
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /u01/oracle/app/oracle/11.2.0/db/dbs/arch
Oldest online log sequence 303086
Current log sequence 303087
SQL>
2.非系统表空间(当前为生产环境,节点RAC1可识别本地文件)
SQL> set line 180
SQL> col file_name for a60
SQL> col tablespace_name for a15
SQL> select file_name,file_id,online_status,tablespace_name from dba_data_files;
FILE_NAME FILE_ID ONLINE_ TABLESPACE_NAME
------------------------------------------------------------ ---------- ------- ---------------
+DATA/sdgdorcl/datafile/system.259.848099691 1 SYSTEM SYSTEM
+DATA/sdgdorcl/datafile/sysaux.260.848099695 2 ONLINE SYSAUX
+DATA/sdgdorcl/datafile/undotbs1.261.848099697 3 ONLINE UNDOTBS1
+DATA/sdgdorcl/datafile/undotbs2.263.848099707 4 ONLINE UNDOTBS2
+DATA/sdgdorcl/datafile/users.264.848099707 5 ONLINE USERS
+DATA/sdgdorcl/datafile/data01.268.848183595 6 ONLINE data01
+DATA/sdgdorcl/datafile/nnc_index01.269.848183657 7 ONLINE INDEX01
+DATA/sdgdorcl/datafile/data0101.268.8481835951.ora 8 ONLINE data01
+DATA/sdgdorcl/datafile/data01.271.854940577 9 ONLINE data01
+DATA/sdgdorcl/datafile/data0102.268.8481835951.ora 10 ONLINE data01
+DATA/sdgdorcl/datafile/nnc_index01.20160308.ora 11 ONLINE INDEX01
FILE_NAME FILE_ID ONLINE_ TABLESPACE_NAME
------------------------------------------------------------ ---------- ------- ---------------
/u01/oracle/app/oracle/11.2.0/db/dbs/data0401.ora 12 ONLINE data01
/u01/oracle/app/oracle/11.2.0/db/dbs/data0328.ora 13 ONLINE data01
+DATA/sdgdorcl/datafile/data01.274.911612215 14 ONLINE data01
+DATA/sdgdorcl/datafile/data01.275.911612497 15 ONLINE data01
+DATA/sdgdorcl/datafile/nnc_index01.276.911612519 16 ONLINE INDEX01
+DATA/sdgdorcl/datafile/nnc_index01.277.911612529 17 ONLINE INDEX01
SQL>
3.干净关闭RAC2,RAC1
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
4.将RAC1启动mount状态
SQL> startup mount
ORACLE instance started.
Total System Global Area 1.7103E+10 bytes
Fixed Size 2245480 bytes
Variable Size 7381978264 bytes
Database Buffers 9663676416 bytes
Redo Buffers 55263232 bytes
Database mounted.
SQL>
5.通过RMAN CP命令拷贝数据文件
[oracle@sdgddb1 ora_data]$ rman target /
RMAN> copy datafile '/u01/oracle/app/oracle/11.2.0/db/dbs/data0328.ora' to '+DATA';
Starting backup at 13-MAY-16
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=433 instance=sdgdorcl1 device type=DISK
channel ORA_DISK_1: starting datafile copy
input datafile file number=00013 name=/u01/oracle/app/oracle/11.2.0/db/dbs/data0328.ora
output file name=+DATA/sdgdorcl/datafile/data01.278.911710731 tag=TAG20160513T045849 RECID=1 STAMP=911710866
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:02:25
Finished backup at 13-MAY-16
RMAN> copy datafile '/u01/oracle/app/oracle/11.2.0/db/dbs/data0401.ora' to '+DATA';
Starting backup at 13-MAY-16
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00012 name=/u01/oracle/app/oracle/11.2.0/db/dbs/data0401.ora
output file name=+DATA/sdgdorcl/datafile/data01.279.911710969 tag=TAG20160513T050248 RECID=2 STAMP=911711045
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:25
Finished backup at 13-MAY-16
RMAN>
6.在sqlplus中将数据库启动到mount状态,rename数据文件,并查看信息
SQL> alter database rename file '/u01/oracle/app/oracle/11.2.0/db/dbs/data0328.ora' to '+DATA/sdgdorcl/datafile/data01.278.911710731';
SQL> alter database rename file '/u01/oracle/app/oracle/11.2.0/db/dbs/data0401.ora' to '+DATA/sdgdorcl/datafile/data01.279.911710969';
7.将rac1,rac2启动
#RAC1
SQL> alter database open;
Database altered.
SQL>
#RAC2
SQL> startup
ORACLE instance started.
Total System Global Area 1.7103E+10 bytes
Fixed Size 2245480 bytes
Variable Size 7381978264 bytes
Database Buffers 9663676416 bytes
Redo Buffers 55263232 bytes
Database mounted.
Database opened.
SQL>
附:SYSTEM数据文件移植步骤(过程说明):
1. Stop DB.
2. Move the datafile using asmcmd.
3. Mount the DB.
4. Rename the datafile.
5. Open the DB.
6. On other RAC nodes you still need to bounce the database because it is SYSTEM tablespace, otherwise you will keep getting errors ORA-01516 or original error ORA-01157: cannot identify/lock data file.
如何将ASM中的数据文件复制到操作系统中
Oracle 11g RAC ASM磁盘全部丢失后的恢复
Oracle 11g从入门到精通 PDF+光盘源代码
RHEL6 ASM方式安装Oracle 11g R2
Oracle 10g 手工创建ASM数据库
Oracle 10g R2创建ASM实例Step By Step
: