OMF对迁移数据以及OCR的影响

  

     迁移数据以及OCR遇到的问题:

  

问题1:   
使用RMAN复制进行数据文件迁移位置时遇到的问题,(从一个磁盘组迁移到另外一块磁盘组)   

采用如下拼接语句进行复制拼接   
选择“复制数据文件“| |”“| | file_name | |”“| |”“| |”“| |”+ NEWDATA/rac/' | | substr (file_name, instr (file_name '/', 1) + 1) | |”“;”从dba_data_files;   

获得如sql语下句:   
复制数据文件' +数据/racdb/功能/users.259.1037590363 ' ' + NEWDATA/rac/用户   
.259.1037590363 ';   
复制数据文件' +数据/racdb/功能/undotbs1.258.1037590363 ' ' + NEWDATA/rac/联合国   
dotbs1.258.1037590363 ';   
复制数据文件' +数据/racdb/功能/sysaux.257.1037590363 ' ' + NEWDATA/rac/sysa   
ux.257.1037590363 ';   
复制数据文件' +数据/racdb/功能/system.256.1037590361 ' ' + NEWDATA/rac/系统   
em.256.1037590361 ';   
复制数据文件' +数据/racdb/功能/example.264.1037590589 ' ' + NEWDATA/rac/穰   
mple.264.1037590589 ';   
复制数据文件' +数据/racdb/功能/undotbs2.265.1037591117 ' ' + NEWDATA/rac/联合国   
dotbs2.265.1037591117 ';   

执行时报错:   
ora - 01276:不能添加文件+ NEWDATA/rac/system.256.1037590361。文件有一个Oracle管理文件的文件名。   

原因:由于数据文件是使用OMF自动文件管理功能创建的数据文件,属于OMF命名格式,当在ASM中,进行数据文件迁移时,从一个磁盘组迁移到另外一个磁盘组时,会报错ora - 01276,解决办法很简单,就是在使用RMAN副本的同时并进行重命名,消除OMF命名规则。

  

修改后的拼接语句如下:   
选择“复制数据文件“| |”“| | file_name | |”“| |”“| |”“| |”+ NEWDATA/rac/' | | substr (file_name, instr (file_name '/', 1) + 1) | |”“;”从dba_data_files;   

获得如下SQL:   
复制数据文件' +数据/racdb/功能/users.259.1037590363 ' ' + NEWDATA/rac/用户   
.259.1037590363.dbf ';   
复制数据文件' +数据/racdb/功能/undotbs1.258.1037590363 ' ' + NEWDATA/rac/联合国   
dotbs1.258.1037590363.dbf ';   
复制数据文件' +数据/racdb/功能/sysaux.257.1037590363 ' ' + NEWDATA/rac/sysa   
ux.257.1037590363.dbf ';   
复制数据文件' +数据/racdb/功能/system.256.1037590361 ' ' + NEWDATA/rac/系统   
em.256.1037590361.dbf ';   
复制数据文件' +数据/racdb/功能/example.264.1037590589 ' ' + NEWDATA/rac/穰   
mple.264.1037590589.dbf ';   
复制数据文件' +数据/racdb/功能/undotbs2.265.1037591117 ' ' + NEWDATA/rac/联合国   
dotbs2.265.1037591117.dbf ';   

执行即可不会报的错。   
迁移完成后,为了确保数据文件名字与原名字相同,就需要进行两次重命的名,但是最终重命名出来的数据文件仅仅是名字与原数据文件相同,与OMF则无关。   

第一次重命名:   
改变数据库重命名文件' +数据/racdb/功能/users.259.1037590363 ' ' + NEWD   
ATA/rac users.259.1037590363.dbf ';   

问题2:   
迁移控制文件时:   
(也是由于OMF)   
ASMCMD>cp Current.260.1037590513 + NEWDATA/rac   
复制+数据/RACDB/CONTROLFILE Current.260.1037590513→+ NEWDATA/rac/Current.260.1037590513   
asmcmd - 8016:复制源' +数据/RACDB/CONTROLFILE Current.260.1037590513”和目标' + NEWDATA/rac Current.260.1037590513”失败了   
ora - 15056:额外的错误消息   
ora - 15046: ASM文件名' + NEWDATA/rac Current.260.1037590513”不是在单一文件创建表单   
ora - 06512:“SYS。X美元DBMS_DISKGROUP”, 415行   
ora - 06512: 3号线(DBD错误:OCIStmtExecute)   

解决办法:   
ASMCMD>cp Current.260.1037590513 Current01.ctl   
复制+数据/RACDB/CONTROLFILE Current.260.1037590513→+数据/RACDB/CONTROLFILE/Current01.ctl   
ASMCMD>cp Current01。ctl + NEWDATA/rac   
复制+数据/RACDB/CONTROLFILE/Current01。ctl→+ NEWDATA/rac/Current01.ctl   
修改参数中记录的控制文件信息时要注意修改名字格式。   

创建集群时还是不要开启OMF自动文件管理功能,要么后续迁移数据盘会比较麻烦。

OMF对迁移数据以及OCR的影响