迁移数据以及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自动文件管理功能,要么后续迁移数据盘会比较麻烦。