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

WBOY
發布: 2016-06-07 14:59:51
原創
2013 人瀏覽過

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 主要可以通过两种方式: 1.在Oracle9i及以上版本中 可以使用dbms_flashback.get_system_change_number来获得 SQL select dbms_flashback.get_system_change_number from dual; GET_SYSTEM_CHANGE_NUM

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

主要可以通过两种方式:

1.在Oracle9i及以上版本中

可以使用dbms_flashback.get_system_change_number来获得

SQL> select dbms_flashback.get_system_change_number from dual;
登入後複製
GET_SYSTEM_CHANGE_NUMBER<br>------------------------<br>                 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)<br>------------------------------------<br>                             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:<br>Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production<br>With the Partitioning, OLAP and Oracle Data Mining options<br>JServer Release 9.2.0.4.0 - Production
登入後複製
SQL> col a for 999999999999<br>SQL> oradebug setmypid<br>Statement processed.<br>SQL> oradebug DUMPvar SGA kcsgscn_<br>kcslf kcsgscn_ [1200BC68, 1200BC88) = 0000<strong>0003 BA84F392</strong> 00071266 00000000 00000000 00000000 00000000 1200B948<br>SQL> select to_number('3BA84F392','xxxxxxxxxxxx') a from dual;
登入後複製
            A<br>-------------<br>  16014177170
登入後複製
SQL> select dbms_flashback.get_system_change_number a from dual;
登入後複製
            A<br>-------------<br>  16014177255
登入後複製
SQL> 
登入後複製

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

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板