本人在做oracle实验的时候,尝试利用dd来迁移裸设备上的控制文件,结果出现了ORA-00205错误。
利用dd命令将控制文件从旧存储的裸设备迁移到新存储上,命令如下:
dd if=/dev/oldcontrol f=/dev/newcontrol bs=2048k
然后尝试启动数据库,在MOUNT时报错:
SQL> startup nomount
ORACLE instance started.
Total System Global Area 1.5032E+10 bytes
Fixed Size 2046960 bytes
Variable Size 2483029008 bytes
Database Buffers 1.2533E+10 bytes
Redo Buffers 14729216 bytes
SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-00205: error in identifying control file, check alert log for more info
检查告警日志,发现错误信息为:
ORA-00202: control file: '/dev/newcontrol'
ORA-27047: unable to read the header block of file
Additional information: 2
ORA-205 signalled during: ALTER DATABASE MOUNT...
查询了metalink,并没有发现和当前问题完全一致的问题,但是怀疑问题可能和AIX系统裸设备的偏移量有关。不过当前操作系统的版本并没有变化,仅仅是存储的改变,按道理来说不应该导致裸设备的偏移量不一致。
为了规避这个问题,不使用dd来进行控制文件的迁移,而改为使用rman来拷贝控制文件,ORA-00205问题得以解决。