ITPub博客

首页 > 数据库 > Oracle > Oracle HowTo:How to get Oracle SCN?

Oracle HowTo:How to get Oracle SCN?

原创 Oracle 作者:sqysl 时间:2009-01-28 21:37:13 0 删除 编辑

之前简单的介绍过一下 如何获得当前数据库的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) = 0000 0003 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>
方法有多种,但是涉及的知识各有巧妙不同,深入研究一下都是很有意思的.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8484829/viewspace-544630/,如需转载,请注明出处,否则将追究法律责任。

下一篇: Oracle X$Tables
请登录后发表评论 登录
全部评论
上世纪90年代初至今,一直专注于数据库应用及研究,擅长数据库优化及设计等。http://blog.itpub.net/8484829;https://blog.csdn.net/tuning_optmization;https://www.cnblogs.com/lhdz_bj/

注册时间:2008-06-27

  • 博文量
    356
  • 访问量
    559907