客户尝试利用dd来迁移裸设备上的控制文件,结果出现了这个错误。
利用dd命令将控制文件从旧存储的裸设备迁移到新存储上,命令如下:
dd IF=/dev/oldcontrol OF=/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来拷贝控制文件,问题得以解决。