如果服务器故障监视器忽略的错误影响了多个会话,服务器故障监视器可能需要采取操作以防止服务丢失。
例如,没有为 Oracle 错误 4031 预设的操作: 无法分配 num-bytes 字节的共享内存预设任何操作。 但是,此 Oracle 错误表示共享全局区 (SGA) 内存不足、被错误拆分或二者兼有。 如果此错误仅影响一个会话,忽略错误可能是适当的操作。 但是,如果此错误影响多个会话,应考虑指定服务器故障监视器重新启动数据库。
下例显示了定制操作文件中的一个项,用于将对 DBMS 错误的响应更改为重新启动。
{ ERROR_TYPE=DBMS_ERROR; ERROR=4031; ACTION=restart; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Insufficient memory in shared pool."; }
此示例显示了定制操作文件中的一个项,它用于覆盖 DBMS 错误 4031 的预设操作。此项可以指定以下行为:
响应 DBMS 错误 4031,服务器故障监视器执行的操作是重新启动。
在检测到错误时应用此项,无论数据库和服务器故障监视器之间的连接状态如何。
检测到错误之后,数据库和服务器故障监视器之间的连接状态必须保持不变。
检测到此错误时,资源的日志文件中将显示以下消息:
共享池内存不足。 |