oracle 基础dbms错误,更改对 DBMS 错误的响应

更改对 DBMS 错误的响应

表 1 中列出服务器故障监视器为响应每个 DBMS 错误所要执行的操作。要确定是否需要更改对 DBMS 错误的响应,可以考虑 DBMS 错误对数据库的影响,以便确定预设操作是否合适。有关示例,请参见下面的子章节:

要更改对 DBMS 错误的响应,可以在定制操作文件中创建条目,并在其中按如下格式设置关键字:

ERROR_TYPE 设置为 DBMS_ERROR。

ERROR 设置为 DBMS 错误的错误编号。

ACTION 设置为需要执行的操作。

响应影响严重的错误

如果服务器故障监视器忽略的错误会影响多个会话,则可能需要服务器故障监视器执行操作以防止服务损失。

例如,没有为 Oracle 错误 4031:unable to allocate num-bytes bytes of shared memory 预设操作。但是,该 Oracle 错误表示共享全局区域 (Shared Global Area, SGA) 内存不足、碎片太多或者同时存在这两种状态。如果该错误仅影响一个会话,则可以考虑适当忽略该错误。但是,如果该错误影响多个会话,则可以考虑指定该服务器错误监控器重新启动该数据库。

下面的示例显示定制操作文件中将 DBMS 错误响应更改为重新启动的条目。

示例 4 将 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.

忽略影响轻微的错误

如果服务器故障监视器所要响应的错误影响轻微,则忽略该错误可能比响应该错误造成的干扰更少。

例如,Oracle 错误 4030:out of process memory when trying to allocate num-bytes bytes 的预设操作是重新启动。该 Oracle 错误表示服务器故障监视器无法分配专用堆内存。导致该错误的一个可能的原因是操作系统可用内存不足。如果该错误影响多个会话,则可以适当考虑重新启动数据库。但是,该错误可能不会影响其它会话,因为这些会话不需要额外专用内存。在这种情况下,可以考虑指定服务器故障监视器忽略该错误。

下面的示例显示定制操作文件中忽略 DBMS 错误的条目。

示例 5 忽略 DBMS 错误

{

ERROR_TYPE=DBMS_ERROR;

ERROR=4030;

ACTION=none;

CONNECTION_STATE=*;

NEW_STATE=*;

MESSAGE="";

}

本示例显示定制操作文件中覆盖 DBMS 错误 4030 预设操作的条目。该条目指定以下行为:

服务器错误监视器将忽略 DBMS 错误 4030。

当检测到错误时,无论数据库和服务器故障监视器之间的连接状态如何都应用该条目。

检测到错误后,数据库和服务器故障监视器之间的连接状态必须保留不更改。

检测到该错误时不会向资源的日志文件打印附加消息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值