暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

参数_smon_internal_errlimit与数据库恢复

原创 eygle 2011-02-25
613
前一段时间,在帮助用户恢复一个数据库时,用到了_smon_internal_errlimit参数。

客户数据库遭受存储损坏无法打开,数据文件存在大量坏块,我们强制打开数据库后遇到了如下错误:
Tue Feb 22 17:22:59 2011
Errors in file d:\\programfiles\\oracle\\admin\\agzt\\bdump\\agzt_smon_7512.trc:
ORA-00600: internal error code, arguments: [25012], [0], [16], [], [], [], [], []

Tue Feb 22 17:28:13 2011
Non-fatal internal error happenned while SMON was doing IOT PMO transient table cleanup.
SMON encountered 1 out of maximum 100 non-fatal internal errors.
Tue Feb 22 17:28:13 2011
Errors in file d:\\programfiles\\oracle\\admin\\agzt\\bdump\\agzt_smon_7512.trc:
ORA-00600: internal error code, arguments: [25012], [0], [16], [], [], [], [], []

Non-fatal internal error happenned while SMON was doing IOT PMO transient table cleanup.
SMON encountered 2 out of maximum 100 non-fatal internal errors.
Tue Feb 22 17:32:06 2011
Errors in file d:\\programfiles\\oracle\\admin\\agzt\\udump\\agzt_ora_8040.trc:

这里Oracle提示,SMON遇到了内部错误,最大允许100次,不断计数增长。
基于对Oracle的信任,我想一定是有一个内部参数用于控制这个次数,于是就查询一下内部视图:
SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ
  FROM SYS.x$ksppi x, SYS.x$ksppcv y
  WHERE x.indx = y.indx AND x.ksppinm LIKE '%&par%'
/
Enter value for par: smon
old   3:  WHERE x.indx = y.indx AND x.ksppinm LIKE '%&par%'
new   3:  WHERE x.indx = y.indx AND x.ksppinm LIKE '%smon%'

NAME                           VALUE    DESCRIB
------------------------------ -------- -----------------------------------------------
_smon_internal_errlimit        100      limit of SMON internal errors
_smon_undo_seg_rescan_limit    10       limit of SMON continous undo segments re-scan

可以将_smon_internal_errlimit这个值调高,这样就可以保证数据库能在较多非致命错误下,不要崩溃。

这个参数在这个Case里对我有效,记录于此。


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论