我是靠谱客的博主 畅快朋友,这篇文章主要介绍Oracle数据文件scn不一致,使用ORACDEBUG 修改 数据库SCN,现在分享给大家,希望可以做个参考。

作者:Lunar©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]

1988年Oracle发布了Oracle V6,这一版本中Oracle引入了热备的操作,同时SCN使用48位存储的算法写死在代码中,一直沿用至12c以前(12c开始使用8个bytes存储SCN)。由于ORACLE的SCN是由48位来表示的,因此最大值不能超过2的48次方

Oracle为了确保48位的SCN能够用足够长的时间(500年),于是对SCN做出了一个限制,就是每秒钟SCN最大增长不能超过16K,Oracle从1988年1月1日0点0分0秒为基准时间,到当前的秒钟数乘以16K,就是当前SCN的最大允许值这就是SCN HEADROOM。

因此SCN天花板 的计算公式就类似于:

(当前时间-19880101 000000)*16384–(current_scn),其中 16384是SCN的内部增长速度16k,这是代码中的硬限制。

这个限制在11.2.0.2版本之前,scn 的最大增长频率是16k,在11.2.0.2版本开始,为32k。

此行为是受到下面参数_max_reasonable_scn_rate控制的:

SQL> @paras

Enter value for paras: scn

old 6: AND x.ksppinm LIKE '%&paras%'

new 6: AND x.ksppinm LIKE '%scn%'

NAME VALUE DESCRIB

-------------------------------------------------- -------------------- -------

最后

以上就是畅快朋友最近收集整理的关于Oracle数据文件scn不一致,使用ORACDEBUG 修改 数据库SCN的全部内容,更多相关Oracle数据文件scn不一致,使用ORACDEBUG内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部