Oracle数据库的CURRENT SCN

数据库的CURRENT SCN是Oracle当前最大的SCN,可以通过多种方法获取该SCN:
1、直接从内存中获取。由于当前最大SCN存储在fixed sga中,因此可以通过Oracle debug工具DUMP kcsgscn结构体获取内存中的最大SCN。在下面的程序中,BA371为16进制显示,转换成10进制就是762737:
SQL> oradebug setmypid
Statement processed.
SQL> ORADEBUG DUMPvar SGA kcsgscn_
kcslf kcsgscn_ [200093D0, 200093F0) = 00000000 000BA371 00008E0E 00000000 00000000 00000000 00000000 200091DC/
2、从VDATABASE视图中获取。从Oracle 10g开始,内存中的最大SCN可以从VDATABASE.CURRENT_SCN中查询,如下所示:
SQL> select current_scn from v$database;

3、从dbms_flashback.get_system_change_number函数中查询,该函数从Oracle 9i开始提供,如下所示:
SQL> select dbms_flashback.get_system_change_number from dual;

由于SCN又叫SYSTEM COMMIT NUMBER,所以SCN的递增跟事务密切相关,在Oracle 8i版本,可以查询XKTUXE( [K]ernel [T]ransaction [U]ndo Transa[x]tion [E]ntry (table))获取回滚段事务表中最大的SCN Base和SCN Wrap,然后通过计算出得出最大的SCN,如下所示:
SQL> select max(ktuxescnw*power(2,32)+ktuxescnb) SCN from x$ktuxe;

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值