`
izuoyan
  • 浏览: 8880316 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多

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

--SCN定义及获取方式

Last Updated: <!-- #BeginDate format:wfcIS1m -->Thursday, 2004-12-02 15:04<!-- #EndDate --> Eygle

<!--DWLayoutEmptyCell-->

SCN(System Change Number) ,也就是通常我们所说的系统改变号,是数据库中非常重要的一个数据结构。

它定义数据库在某个确切时刻提交的版本。在事物提交时,它被赋予一个唯一的标示事物的 SCN 。 SCN 提供 Oracle 的内部时钟机制,
可被看作逻辑时钟,这对于恢复操作是至关重要的 ( Oracle 仅根据 SCN 执行恢复)。

一直以来,对于 SCN 有很多争议,很多人认为 SCN 是指, System Commit Number ,而通常 SCN 在提交时才变化,所以很多时候,
这两个名词经常被交替使用。

到底是哪个词其实不是最重要的,重要的是我们知道 SCN 是 Oracle 内部的时钟机制, Oracle 通过 SCN 来维护数据库的一致性,并通过
SCN 实施 Oracle 至关重要的恢复机制。 SCN 由 LGWR 顺序分配,用以标示提交、回滚和检查点。

我们来看一下获得当前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获得

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
					  

本文作者:
eygle,Oracle技术关注者,来自中国最大的Oracle技术论坛itpub.
www.eygle.com是作者的个人站点.你可通过Guoqiang.Gai@gmail.com来联系作者.欢迎技术探讨交流以及链接交换.


原文出处:

http://www.eygle.com/faq/How.To.Get.Current.SCN.of.Database.htm


分享到:
评论

相关推荐

    个人经验总结:Oracle数据库SCN号详解

    Oracle数据库SCN号详解 系统检查点scn) 数据文件检查点(v$datafile) 数据文件终止scn) 数据文件中存放的检查点 启动scn

    数据库SCN 监控SQL.txt

    针对Oracle 在 2019年 6月23日后,新SCN 策略生效后,我们开始对数据库 Oracle scn 监控

    数据库SCN 监控-new.txt

    Oracle 数据库在2019年 6月23日自动生效了新的SCN 生成的量由以前的16K 涨导 32K,但还是没有根本上解决问题,历史遗留问题还有可能发生,所以我们需要继续监控数据库 SCN 问题

    数据库SCN和时间的互相转换

    说明:SCN(System Change Number 简称 SCN)是当Oracle数据库更新后,由...  1、通过dbms_flashback.get_system_change_number获得系统当前的SCN值:  SQL&gt; select dbms_flashback.get_system_change_number sc

    ORACLE SCN问题解析

    在某些环境下,程序bug会引起ORACLE数据库SCN的异常增长,超出ORACLE设定的合理范围,该事件很可能导致宕机,并且由于企业内部存在众多的分布式事务,引起SCN的剧烈增长很容易出现扩散现象,导致更多的数据库宕机。...

    升级数据库smon_scn_time

    升级数据库smon_scn_time

    修改oracle scn小工具(patch scn)

    在一些情况下(特别是一些数据库非常规恢复场景中),需要修改oracle scn绕过一些错误,让数据库open成功,在以前的版本中我们可以通过event,隐含参数,oradebug等方法进行修改,在一些较新的版本中这些方法都被oracle屏蔽,...

    oracle scn

    oracle数据库, scn详细解释oracle数据库

    DBLINKSCN检测脚本.zip

    通过该脚本可查看平均每秒kcmgas call的平均值,如果该平均值超过10000,则触发BUG的可能性较高,超过16K,则触发BUG,并导致SCN HEADROOM下降的可能性较大。 该脚本的目的是用于初略检查当前系统中的SCN突变的情况...

    delete误删数据使用SCN号恢复(推荐)

    1.查询系统闪回的scn值以及当前日志的scn值,因为我这个是测试,创建的表是在在后边,所以scn值要大于下边这两个scn值,所以对我恢复数据没有用,如果我创建的数据是在下边这两个SCN值之前,也就是比这两个时间点SCN...

    oracle scn概念解析

    oracle scn分析及概念解释,及各种scn的查询sql语句

    Oracle SCN机制解析

    SCN(System Chang Number)作为oracle中的一个重要机制,在数据恢复、Data Guard、Streams复制、RAC节点间的同步等各个功能中起着重要作用。理解SCN的运作机制,可以帮助你更加深入地了解上述功能。

    SCN号的闪回

    SCN号的闪回

    scn_his.sql

    对使用dblink的数据库,执行his_scn.sql脚本,检查SCN变动的历史记录; ——由于本人平时也会下载一些资源,所以非常抱歉对该资源收取C币,还望理解。

    oracle patch scn--修改oracle scn工具(oracle异常恢复利器)

    oracle scn修改工具,可以直接修改oracle scn,在极端情况下恢复使用,比如解决ORA-600 2662等类似错误,使用说明:https://www.xifenfei.com/2022/06/win-oracle-scn-patch.html

    Oracle SCN与检查点详解

    1.SCN 的定义 ...作为数据库内部的逻辑时钟,数据库事务依 SCN 而排序,Oracle 也依据 SCN 来实现一致性读 (Read Consistency )等重要数据库功能。另外对于分布式事务(Distributed Transactions), SCN

    随机配置网络SCN实现的matlab代码——亲测可用

    随机配置网络SCN实现的matlab代码——亲测可用

    Oracle系统改变号SCN详解

    Oracle系统改变号SCN详解.docx

Global site tag (gtag.js) - Google Analytics