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