数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

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


发布日期:2020年06月05日
 
如何获得当前数据库的SCN值
主要可以通过两种方式:

在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>

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

               

上一篇:用DataDude进行数据比较的方法

下一篇:ORACLE中存取LONG类型字段的方法