SCN的获取方式

Eygle 2019-07-24
29
0 0
摘要:SCN的获取方式

问题描述

有哪几种方式可以获取数据库的scn

专家解答

可以通过如下几种方式获得数据库的当前或近似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.从Oracle10g开始

在v$database视图中增加了current_scn字段,通过查询该字段可以获得数据库的当前SCN值:

SQL> select current_scn from v$database;
CURRENT_SCN
-----------
     612842

4.从内存中取得SCN信息

通过oradebug工具可以直接读取内存中用于记录SCN的内存变量:

SQL> oradebug setmypid    
Statement processed.
SQL> oradebug DUMPvar SGA kcsgscn_
kcslf kcsgscn_ [2000C848, 2000C868) = 00000000 000959EA 00000000 00000000 00000000 00000000 00000000 2000C654
SQL> select to_number('959EA','xxxxxx') SCN from dual;
SCN
---------------------------
                     612842


「喜欢文章,快来给作者赞赏墨值吧」

评论

0
0
Oracle
订阅
欢迎订阅Oracle频道,订阅之后可以获取最新资讯和更新通知。
墨值排行
今日本周综合
近期活动
全部
相关课程
全部