eygle.com   eygle.com
eygle.com  
 

« 人生若只如初见 | Blog首页 | Oracle bloggers on frappr »

Oracle HowTo:How to get Oracle SCN?

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

之前简单的介绍过一下如何获得当前数据库的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获得最接近当前系统scn值

 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 

3.通过oradebug获取

以前在l2g32003的站点上看到使用oradebug获取SCN的方法,转引在这里:

[oracle@neirong oracle]$ sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Production on Wed Dec 21 21:04:24 2005
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
SQL> col a for 999999999999
SQL> oradebug setmypid
Statement processed.
SQL> oradebug DUMPvar SGA kcsgscn_
kcslf kcsgscn_ [1200BC68, 1200BC88) = 00000003 BA84F392 00071266 00000000 00000000 00000000 00000000 1200B948
SQL> select to_number('3BA84F392','xxxxxxxxxxxx') a from dual;
            A
-------------
  16014177170
SQL> select dbms_flashback.get_system_change_number a from dual;
            A
-------------
  16014177255
SQL> 

方法有多种,但是涉及的知识各有巧妙不同,深入研究一下都是很有意思的.

-----
这篇 【Oracle HowTo:How to get Oracle SCN?】来自 www.eygle.com | CSDN技术网摘| del.icio.us|365Key

By eygle on 2006-01-06 20:51 | Comments (3) | Posted to HowTo | Internal | Edit |Pageviews:

相关文章 随机文章
  • Oracle10g的current_scn是如何计算的?
  • Oracle10g中SCN与TimeStamp的相互转换
  • 如何获得当前数据库的SCN值
  • DB link与检查点(checkpoint)和SCN
  • Oracle10g v$database视图SCN增强
  • Merry Christmas to my friends
    新年 新婚
    DB2新手上路:DB2命令行连接
    CBO对于Oracle SQL执行计划的影响(之二)
    欢迎加入ChinaOracleBlogger地图
    网上相关主题:
    Google

    留言 (3)

    为何我使用前两种方法,在同一时间获取的SCN不一致?

    Posted by: wangwang at April 27, 2007 2:10 PM

    x$ktuxe
    为啥我的10G里没有这个表?

    Posted by: msrennan at November 27, 2007 11:29 AM

    我的有:

    SQL> desc x$ktuxe
    Name Null? Type
    ----------------------------------------- -------- ----------------------------
    ADDR RAW(8)
    INDX NUMBER
    INST_ID NUMBER
    KTUXEUSN NUMBER
    KTUXESLT NUMBER
    KTUXESQN NUMBER
    KTUXERDBF NUMBER
    KTUXERDBB NUMBER
    KTUXESCNB NUMBER
    KTUXESCNW NUMBER
    KTUXESTA VARCHAR2(16)
    KTUXECFL VARCHAR2(24)
    KTUXEUEL NUMBER
    KTUXEDDBF NUMBER
    KTUXEDDBB NUMBER
    KTUXEPUSN NUMBER
    KTUXEPSLT NUMBER
    KTUXEPSQN NUMBER
    KTUXESIZ NUMBER

    SQL> select * from v$version;

    BANNER
    ----------------------------------------------------------------
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
    PL/SQL Release 10.2.0.3.0 - Production
    CORE 10.2.0.3.0 Production
    TNS for Solaris: Version 10.2.0.3.0 - Production
    NLSRTL Version 10.2.0.3.0 - Production

    Posted by: eygle at November 27, 2007 4:20 PM

    发表留言:



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



    CopyRight © 2004 eygle.com, All rights reserved.