IT技术博客大学习 共学习 共进步

参数_smon_internal_errlimit与数据库恢复

Oracle Life 2011-03-07 22:37:11 浏览 3,862 次
前一段时间,在帮助用户恢复一个数据库时,用到了_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里对我有效,记录于此。

建议继续学习

  1. 用 LD_PRELOAD 挽救被误删的 libc.so.6 (阅读 5,043)
  2. MySQL从压缩文件恢复数据 (阅读 4,682)
  3. MySQL 备份和其恢复机制原理简述 (阅读 4,022)
  4. 用bin日志中恢复MySQL数据库 (阅读 3,641)
  5. Zmanda让MySQL的备份与恢复更加方便快捷灵活 (阅读 3,561)
  6. 用CloneZilla制作紧急恢复分区 (阅读 3,523)
  7. WEB设计中的“帮助用户从错误中恢复” (阅读 3,062)
  8. 当logfile被误删除后 (阅读 2,961)
  9. Oracle数据库恢复:存储故障导致的数据损坏 (阅读 2,920)
  10. Oracle数据库恢复:归档日志损坏案例一则 (阅读 2,822)