缺省情况下,服务器故障监视器在第二次连续超时探测后重新启动数据库。 如果数据库负载较小,两个连续超时探测应足以说明数据库正在挂起。 但是在负载繁重期间,服务器故障监视器探测可能会超时,即使数据库运行正常。 为防止服务器故障监视器不必要地重新启动数据库,请增加连续超时探测的最大数目。
增加连续超时探测的最大数目,将增加用于检测数据库正在挂起所需的时间。
要更改允许的连续超时探测的最大数目,请在定制操作文件中为每个允许的连续超时探测(第一个超时探测除外)创建一个项。
您无需为第一个超时探测创建项。 服务器故障监视器响应第一个超时探测而执行的操作已被预设。
对于上一个允许的超时探测,请创建一个项,其中的关键字设置如下:
将 ERROR_TYPE 设置为 TIMEOUT_ERROR。
将 ERROR 设置为允许的连续超时探测的最大数目。
将 ACTION 设置为 RESTART。
对于其余的每个连续超时探测(第一个超时探测除外),请创建一个项,其中关键字设置如下:
将 ERROR_TYPE 设置为 TIMEOUT_ERROR。
将 ERROR 设置为超时探测的序列号。 例如,对于第二个连续超时探测,请将此关键字设置为 2。对于第三个连续超时探测,将此关键字设置为 3。
将 ACTION 设置为 NONE。
为便于调试,请指定一个表示超时探测的序列号的消息。
下例显示了定制操作文件中的项,用于将连续超时探测的最大数目增加到五。
{ 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."; }
此例显示了定制操作文件中的项,用于将连续超时探测的最大数目增加到五。 这些项指定以下行为:
服务器故障监视器忽略第二个连续超时探测至第四个连续超时探测。
响应第五个连续超时探测,服务器故障监视器执行的操作是重新启动。
在发生超时时应用这些项,无论数据库和服务器故障监视器之间的连接状态如何。
发生超时后,数据库和服务器故障监视器之间的连接状态必须保持不变。
在发生第二个连续超时探测至第四个连续超时探测时,资源日志文件中将显示以下形式的消息:
已发生超时 #number。 |
在发生第五个连续超时探测时,资源日志文件中将显示以下消息:
已发生超时 #5。正在重新启动。 |