Heim > Datenbank > MySQL-Tutorial > ORA-00704: bootstrap process failure的解决方案

ORA-00704: bootstrap process failure的解决方案

WBOY
Freigeben: 2016-06-07 17:29:15
Original
1564 Leute haben es durchsucht

刚刚手工创建了数据库,时间太晚,没继续研究,结果今天再次打开数据库时报了下面的错误ORA-00704: bootstrap process failure,

刚刚手工创建了数据库,时间太晚,没继续研究,结果今天再次打开数据库时报了下面的错误

ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option

按照下面的建议通过

SQL>startup update

确实可以open数据库,但是终究不是问题的解决办法,下次startup仍然会报上面的错误。通过查询发现

[Oracle@sigleNode ~]$ 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).

通过网上常见问题的解释,大致为数据库软件进行了升级,但是对应的数据库字典表没有进行升级导致,需要startup upgrade之后,然后执行catupgrd.sql 即可。

但是我昨天刚刚手工创建的数据库没有进行升级,肯定不是这种情况,感觉特别疑惑,看一下

ORA-00704: bootstrap process failure引导进程失败,而且数据库没有进行任何操作,,仅仅是创建数据库之后创建了数据字典,结合网上其他的解释,感觉应该是创建数据字典出了问题。通过打开数据库报错都可以通过sql跟踪来跟进,跟进一下打开数据库时的sql跟踪文件

sql>startup mount;;

sql>alter session set sql_trace=true;

确认下跟踪文件的位置之后打开数据库,同样报了上面错误。

打开跟踪文件到最后几行

SELECT NULL FROM REGISTRY$ WHERE CID='CATPROC' AND VERSION = :1
END OF STMT
PARSE #5:c=20001,e=26341,p=9,cr=23,cu=0,mis=1,r=0,dep=1,og=4,tim=1390627568015438
EXEC #5:c=0,e=538,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,tim=1390627568016134
FETCH #5:c=0,e=615,p=2,cr=3,cu=0,mis=0,r=0,dep=1,og=4,tim=1390627568016806
STAT #5 id=1 cnt=0 pid=0 pos=1 bj=891 p='TABLE ACCESS FULL REGISTRY$ (cr=3 pr=2 pw=0 time=613 us)'
ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option
EXEC #3:c=708045,e=2497539,p=41,cr=512,cu=0,mis=0,r=0,dep=0,og=4,tim=1390627569051830
ERROR #3:err=1092 tim=1718720068

执行到

SELECT NULL FROM REGISTRY$ WHERE CID='CATPROC' AND VERSION = :1
这个语句时报了错误。

将数据库用 startup upgrade 启动起来,然后执行 SELECT NULL FROM REGISTRY$ WHERE CID='CATPROC',发现没有抱错,但是没有记录,所以我到一个好的数据库中查询了 SELECT * FROM REGISTRY$ WHERE CID='CATPROC' 发现是有记录的,怀疑问题就出在这里 没有找到 CATPROC 的记录导致 数据库引导程序进程失败。
我仔细检查了一下执行的创建数据字典的脚本

@$ORACLE_HOME/rdbms/admin/catalog.sql
@$ORACLE_HOME/rdbms/admin/cataproc.sql

原来是第二个脚本手误,应该是catproc.sql

startup upgrade之后重新执行这个脚本,重新启动实例成功。

linux

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage