欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Streams AQ: qmn coordinator waiting for slave to s

程序员文章站 2024-02-12 13:43:58
...

一个客户的10.2.0.5数据库的TOP 5等待出现了这个等待事件。 其实导致这个Streams AQ: qmn coordinator waiting for slave to start等待出现的原因除了参数设置不合理外,最主要的原因还是数据库太闲了: Event Waits Time(s) Avg Wait(ms) % Total Call ? Ti

一个客户的10.2.0.5数据库的TOP 5等待出现了这个等待事件。

其实导致这个Streams AQ: qmn coordinator waiting for slave to start等待出现的原因除了参数设置不合理外,最主要的原因还是数据库太闲了:

Event

Waits

Time(s)

Avg Wait(ms)

% Total Call ? Time

Wait Class

CPU time

372

59.0

Streams AQ: qmn ? coordinator waiting for slave to start

6

34

5,667

5.4

Other

db file ? scattered read

50,528

28

1

4.4

User I/O

gc cr multi ? block request

66,347

24

0

3.8

Cluster

db file ? sequential read

7,157

18

2

2.8

User I/O

可以看到,这个Streams AQ: qmn coordinator waiting for slave to start等待排在TOP 5的第二位,仅仅等待了34秒。不过这个等待的平均等待时间则达到了5秒以上,相比总的等待时间,这个对单次操作的性能影响更加明显。

导致这个问题的主要原因是初始化参数AQ_TM_PROCESSES设置为0,而Oracle推荐改参数应该至少设置为1。由于Oracle的高级队列、流、数据泵等多种内置功能都会依赖于QMN进程,当AQ_TM_PROCESSES不为0时,Oracle无法自动根据负载确定QNNN进程的数量,来满足队列相关操作的需求。而如果该参数被禁止,Oracle只能在出现队列需求的时候才被动的去启动一个SLAVE进程,从而导致了较高的平均等待时间。