如果服务器故障监视器忽略的错误会影响多个会话,则可能需要服务器故障监视器执行操作以防止服务损失。
例如,没有为 Oracle 错误 4031:unable to allocate num-bytes bytes of shared memory 预设操作。但是,该 Oracle 错误表示共享全局区域 (Shared Global Area, SGA) 内存不足、碎片太多或者同时存在这两种状态。如果该错误仅影响一个会话,则可以考虑适当忽略该错误。但是,如果该错误影响多个会话,则可以考虑指定该服务器错误监控器重新启动该数据库。
下面的示例显示定制操作文件中将 DBMS 错误响应更改为重新启动的条目。
{ ERROR_TYPE=DBMS_ERROR; ERROR=4031; ACTION=restart; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Insufficient memory in shared pool."; }
本示例显示在定制操作文件中覆盖 DBMS 错误 4031 预设操作的条目。该条目指定以下行为:
为响应 DBMS 错误 4031,服务器故障监视器所要执行的操作是重新启动。
当检测到错误时,无论数据库和服务器故障监视器之间的连接状态如何都应用该条目。
检测到错误后,数据库和服务器故障监视器之间的连接状态必须保留不更改。
当检测到错误时,将以下消息打印到资源的日志文件中:
Insufficient memory in shared pool. |