eygle's life

没有Oracle,世界将会怎样?

盖国强ID:eygle
315561次访问,排名156好友0人,关注者10
eygle的文章
原创 223 篇
翻译 0 篇
转载 5 篇
评论 368 篇
eygle的公告


最近评论
psnccs:Wow gold
lynx1111:老大, 能问一下一本书赚多少银子吗?
cyco008:我运行的两种取得的SCN值也不同,而且第一次运行select max(ktuxescnw*power(2,32)+ktuxescnb) from x$ktuxe;与第二次也不同,之后的与第二次才一样。
liuya1985liuya:买了,看完了 感觉不错。
请问怎样才看一个DBA,我是做J2EE开发的,计划转做DBA,事实是也正在努力,两个多月了想找一份初级DBA或是维护又或是开发的工作,仍未找到......
liuya1985liuya:不错 买了
文章分类
收藏
    相册
    友情链接
    eygle的个人站点
    Fenng的个人站点
    我在itpub的Blog
    雪狼的个人站点
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 如何获得当前数据库的SCN值收藏

    新一篇: 在Oracle9i中如何自行编译BBED工具 | 旧一篇: Oracle9i新特性:iSQLPLUS

    如何获得当前数据库的SCN值

    --SCN定义及获取方式

    Last Updated: Thursday, 2004-12-02 15:04 Eygle
        

     

     

    SCN(System Change Number) ,也就是通常我们所说的系统改变号,是数据库中非常重要的一个数据结构。

    它定义数据库在某个确切时刻提交的版本。在事物提交时,它被赋予一个唯一的标示事物的 SCN 。 SCN 提供 Oracle 的内部时钟机制,
    可被看作逻辑时钟,这对于恢复操作是至关重要的 ( Oracle 仅根据 SCN 执行恢复)。

    一直以来,对于 SCN 有很多争议,很多人认为 SCN 是指, System Commit Number ,而通常 SCN 在提交时才变化,所以很多时候,
    这两个名词经常被交替使用。

    到底是哪个词其实不是最重要的,重要的是我们知道 SCN 是 Oracle 内部的时钟机制, Oracle 通过 SCN 来维护数据库的一致性,并通过
    SCN 实施 Oracle 至关重要的恢复机制。 SCN 由 LGWR 顺序分配,用以标示提交、回滚和检查点。

    我们来看一下获得当前SCN的几种方式:

    1.在Oracle9i中,可以使用dbms_flashback.get_system_change_number来获得

    例如:

    
    SQL> select dbms_flashback.get_system_change_number from dual;
    
    GET_SYSTEM_CHANGE_NUMBER
    ------------------------
                     2982184
                          

    2.在Oracle9i之前

    可以通过查询x$ktuxe获得

    X$KTUXE-------------[K]ernel [T]ransaction [U]ndo Transa[x]tion [E]ntry (table)

     

    SQL> select max(ktuxescnw*power(2,32)+ktuxescnb) from x$ktuxe;
    
    MAX(KTUXESCNW*POWER(2,32)+KTUXESCNB)
    ------------------------------------
                                 2980613
    					  

     

     

    本文作者:
    eygle,Oracle技术关注者,来自中国最大的Oracle技术论坛itpub.
    www.eygle.com是作者的个人站点.你可通过Guoqiang.Gai@gmail.com来联系作者.欢迎技术探讨交流以及链接交换.


    原文出处:

    http://www.eygle.com/faq/How.To.Get.Current.SCN.of.Database.htm

     


    发表于 @ 2004年12月03日 11:12:00|评论(loading...)|编辑

    新一篇: 在Oracle9i中如何自行编译BBED工具 | 旧一篇: Oracle9i新特性:iSQLPLUS

    评论

    #silverwang 发表于2004-12-25 13:10:00  IP: 202.104.107.*
    Geoff Ingram的<<High Performance>>中也介绍了.SCN的确是Oracle各种问题的关键,偶也正在啃这一部分.
    #richardcao 发表于2007-06-08 14:16:21  IP: 58.246.35.*
    我用这两句命令结果得到了两个不同的结果。请问是为什么?
    难道是oracle 9i的bug?
    我的数据库版本: 9.2.0.4
    操作系统 winxp sp2

    #cyco008 发表于2008-03-04 17:01:13  IP: 219.136.229.*
    我运行的两种取得的SCN值也不同,而且第一次运行select max(ktuxescnw*power(2,32)+ktuxescnb) from x$ktuxe;与第二次也不同,之后的与第二次才一样。
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © eygle