解决Restarting死进程QMN0问题一例

2/9/2008来源:Oracle教程人气:5196

一大早被电话吵醒,同事说一个数据库应用升级之后无法启动。
后台连续报错:
Sun APR 30 10:48:41 2006
Restarting dead background process QMN0
QMN0 started with pid=9
Sun Apr 30 10:53:42 2006
Restarting dead background process QMN0
QMN0 started with pid=9 那么QMN0是什么进程呢? Queue Monitor Processes (QMNn)
队列监视进程是一个可选的后台进程,为Oracle Streams Advanced Queuing所使用。
最多可以配置10个队列监视进程。和Job进程一样,该进程的异常不会导致数据库的Crash。 通常这个错误不会导致数据库无法启动,但是在某些平台上会存在Bug,可能会导致数据库无法启动。
假如没有用到Oracle Streams Advanced Queuing选件,就可以取消该进程,数据库自然就可以启动了: SQL> show parameter aq NAME                                 TYPE        VALUE
------------------------------------ ----------- -----------------
aq_tm_processes                      integer     1
SQL> alter system set aq_tm_processes=0 scope=both; System altered. SQL> alter database open; Database altered. 此案例的数据库版本为9.2.0.3,平台为Sun Solaris: SQL> select * from v$version; BANNER
----------------------------------------------------------------
9i Enterprise Edition Release 9.2.0.3.0 - 64bit ProdUCtion
PL/SQL Release 9.2.0.3.0 - Production
CORE    9.2.0.3.0       Production
TNS for Solaris: Version 9.2.0.3.0 - Production
NLSRTL Version 9.2.0.3.0 - Production SQL> exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.3.0 - Production

$ isainfo -v
64-bit sparcv9 applications
32-bit sparc applications 原文地址:http://www.eygle.com/archives/2006/04/restarting_dead_qmn0_process.Html