默认情况下,服务器故障监视器将在第二次连续超时探测后重新启动数据库。如果数据库负载很轻,两次连续超时探测应足以表明该数据库已挂起。但在负载很重时,即使数据库正常工作,服务器故障监视器探测也可能会连续超时。为防止服务器故障监视器不必要地重新启动数据库,可以增加连续超时探测的最大次数。
增加连续超时探测的最大次数会延长检测数据库是否挂起所需的时间。
要更改连续超时探测允许的最大次数,可以在定制操作文件中为除第一次超时探测外其余每个允许的连续超时探测创建一个条目。
您不需要为第一次超时探测创建条目。服务器故障监视器响应第一次超时探测所要执行的操作已经预设。
对于最后一次允许的超时探测,可以创建按如下格式设置关键字的条目:
ERROR_TYPE 设置为 TIMEOUT_ERROR。
ERROR 设置为允许的连续超时探测的最大次数。
ACTION 设置为 RESTART。
对于除第一次超时探测外其余每个仍然连续超时探测,可以创建按如下格式设置关键字的条目:
ERROR_TYPE 设置为 TIMEOUT_ERROR。
ERROR 设置为超时探测的序列号。例如,对于第二次连续超时探测,可以将关键字设置为 2。对于第三次连续超时探测,可以将关键字设置为 3。
ACTION 设置为 NONE。
为方便调试,可以指定表示超时探测序列号的消息。
下面的示例显示定制操作文件中将连续超时探测最大次数增加到 5 的条目。
{ ERROR_TYPE=TIMEOUT; ERROR=2; ACTION=NONE; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Timeout #2 has occurred."; } { ERROR_TYPE=TIMEOUT; ERROR=3; ACTION=NONE; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Timeout #3 has occurred."; } { ERROR_TYPE=TIMEOUT; ERROR=4; ACTION=NONE; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Timeout #4 has occurred."; } { ERROR_TYPE=TIMEOUT; ERROR=5; ACTION=RESTART; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Timeout #5 has occurred. Restarting."; }
本示例显示定制操作文件中将连续超时探测最大次数增加到 5 的条目。这些条目指定以下行为:
服务器故障监视器忽略从第二次连续超时探测到第四次连续超时探测。
为响应第五次连续超时探测,服务器故障监视器所要执行的操作是重新启动。
当发生超时时,无论数据库和服务器故障监视器之间的连接状态如何都应用该条目。
超时发生后,数据库和服务器故障监视器之间的连接状态必须保持不变。
当发生第二次连续超时探测到第四次连续超时探测时,将以下格式的消息打印到资源的日志文件:
Timeout #number has occurred. |
当发生第五次连续超时探测时,将以下消息打印到资源的日志文件:
Timeout #5 has occurred. Restarting. |