eygle Eygle.
FAQ 2006-04-30

解决Restarting死进程QMN0问题一例

一大早被电话吵醒,同事说一个数据库应用升级之后无法启动。
后台连续报错:

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
----------------------------------------------------------------
Oracle9i 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

 

By eygle 2006-04-30 17:18 评论 (0)
eygle
eygle

前Oracle ACE Director,云和恩墨创始人。技术为骨,历史为脉,人文为魂。

返回首页