eygle.com   eygle.com
eygle.com  
 

« ORA-01114、ORA-27067错误案例一则 | Blog首页 | 使用DATAPUMP导致ORA-00600 17020错误 »

Oracle如何维护SMON_SCN_TIME表?

作者:eygle |【转载时请以超链接形式标明文章和作者信息及本声明
链接:

今天客户的数据库再次出现了ORA-1461错误:
ORA-1461 encountered when generating server alert SMG-3500

这个错误之前已经记录过,在10.2.0.4中修正,在10.2.0.3中也并不会带来严重的问题。
但是还是又仔细看了一下这个错误提示:
update smon_scn_time set orig_thread=0, time_mp=:1, time_dp=:2, scn=:3,
scn_wrp=:4, scn_bas=:5, num_mappings=:6, tim_scn_map=:7 where thread=0 and
scn = (select min(scn) from smon_scn_time where thread=0)

这是由于数据库内部更新smon_scn_time出现的错误,这个字典表用于维护Oracle至关重要的SCN与时间的对应关系,Flashback等重要特性也以来于此。

但是这个表的记录是循环使用的,那么Oracle如何循环使用呢?
这个Bug中的这个语句说明了这个过程:
update smon_scn_time
set orig_thread=0, time_mp=:1, time_dp=:2, scn=:3,scn_wrp=:4, scn_bas=:5, num_mappings=:6, tim_scn_map=:7
where thread=0 and scn = (select min(scn) from smon_scn_time where thread=0)

原来是找出SCN最小的一个,来Update,这效率也够低的。

这个表中其实并不包含Long型数据,所以这个错误提示的根本原因其实更复杂,涉及了一连串的Bug:


SQL> desc smon_scn_time
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
THREAD                                            NUMBER
TIME_MP                                            NUMBER
TIME_DP                                            DATE
SCN_WRP                                            NUMBER
SCN_BAS                                            NUMBER
NUM_MAPPINGS                                      NUMBER
TIM_SCN_MAP                                        RAW(1200)
SCN                                                NUMBER
ORIG_THREAD                                        NUMBER



历史上的今天...
      >> 2008-04-09文章:
             数据字典表之:DBA_TABLES
             百度 城管 与 GFW
      >> 2006-04-09文章:
             关于自动PGA管理的进一步探讨
             经典重现
------
这篇 【Oracle如何维护SMON_SCN_TIME表?】来自 eygle.com | CSDN网摘| del.icio.us|Google订阅 | 鲜果订阅 | 抓虾订阅

By eygle on 2009-04-09 00:58 | Comments (0) | Posted to Case | Edit |

相关文章 随机文章
  • 使用errorstack跟踪ORA-01438错误
  • ORA-01157 - Mount状态下的文件存在性校验
  • 使用DATAPUMP导致ORA-00600 17020错误
  • ORA-01114、ORA-27067错误案例一则
  • 遭遇 ORA-7445 kkofkrproratestat 错误
  • 天下无贼后传-也是对2004年的总结
    恩墨科技成功签下第一个企业客户
    修改默认的undo_retention参数设置
    Brother, My Cup Is Empty
    Oracle 11gR2 安装初体验 - OEL + Oracle
    搜索本站:

    留言 (0)

    发表留言:



    Remember Me?
    (输入验证码后方可评论,谢谢支持)



    CopyRight © 2004~2010 eygle.com, All rights reserved.