开发那边说数据库启动报错:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option
Process ID: 3332
Session ID: 233 Serial number: 1
看到这个报错,第一反应是数据库被升级了,但又自己否定了这个想法,开发人员也很配合的说没有。
开发人员说之前用起来都是好的,系统重启后数据库就变成这样了。
一开始我以为是spfile有问题,折腾了半天,重写了参数文件,启动的时候依然报错。
使用oerr ora 39700看了下:
[oracle@hpc01 ~]$ oerr ora 39700
39700, 00000, "database must be opened with UPGRADE option"
// *Cause: A normal database open was attempted, but the database has not
// been upgraded to the current server version.
// *Action: Use the UPGRADE option when opening the database to run
// catupgrd.sql (for database upgrade), or to run catalog.sql
// and catproc.sql (after initial database creation).
看到oracle的action中写道,在upgrade模式下执行脚本catupgrd.sql,或者在数据库初始化后执行catalog.sql和catproc.sql
看到初始化这个地方,立马询问开发人员,数据库是手工建的还是dbca建的,开发人员爽快的说是dbca,我接着问道dbca界面正常结束吗,
开发人员磨蹭了两三秒。。说dbca界面在最后好像卡死了,但他看到数据库正常使用,就直接关掉了。
瞬间豁然开朗,定是数据库建完后,跑数据字典这一步时,dbca界面卡住,而开发人员又将其关掉,导致数据字典未正常执行。。。
但数据库此时用起来也无异常,但当服务器重启,数据库重新启动时候,数据库开始数据字典相关的检查,发现异常,于是有了如上报错。
按照oracle的建议步骤执行:
先startup upgrade
然后依次执行catalog.sql和catproc.sql脚本,完成后停掉数据库,再startup,恢复正常!