熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

如何獲得當前數據庫的SCN值

2013-11-13 22:21:34  來源: Oracle 
主要可以通過兩種方式:

  在Oraclei及以上版本中

  可以使用dbms_flashbackget_system_change_number來獲得

  SQL> select dbms_flashbackget_system_change_number from dual;

  GET_SYSTEM_CHANGE_NUMBER

                

  在Oraclei之前

  可以通過查詢x$ktuxe獲得最接近當前系統scn值

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

  

  SQL> select max(ktuxescnw*power()+ktuxescnb) from x$ktuxe;

  MAX(KTUXESCNW*POWER()+KTUXESCNB)

                              

  通過oradebug獲取

  以前在lg的站點上看到使用oradebug獲取SCN的方法轉引在這裡:

  

  [oracle@neirong oracle]$ sqlplus / as sysdba

  SQL*Plus: Release Production on Wed Dec ::

  Copyright (c) Oracle Corporation  All rights reserved

  Connected to:
Oraclei Enterprise Edition Release Production
With the Partitioning OLAP and Oracle Data Mining options
JServer Release Production

  SQL> col a for
SQL> oradebug setmypid
Statement processed
SQL> oradebug DUMPvar SGA kcsgscn_
kcslf kcsgscn_ [BC BC) = BAF B
SQL> select to_number(BAFxxxxxxxxxxxx) a from dual;

  A

 

  SQL> select dbms_flashbackget_system_change_number a from dual;

  A

 

  SQL>



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


From:http://tw.wingwit.com/Article/program/Oracle/201311/18872.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.