DB Link导致SCN Headroom过低问题研究

本文深入探讨了Oracle数据库中SCN(System Change Number)的概念,以及SCN Headroom过低可能导致的问题。文章指出,DB Link可能导致SCN异常增长,并通过实例解释了如何识别和诊断这一问题。建议应用官方补丁,调整相关参数,并监控SCN生成率,以防止DB Link造成的SCN传染。此外,提供了SQL脚本和参考资料以辅助解决此类问题。
摘要由CSDN通过智能技术生成

一、     基础概念

1、SCN(System Change Number)值是Oracle数据库运行每次变化的一个逻辑点,相当于数据库内部的一个时钟,是个只增不减的数字,广泛应用于数据库的恢复、事务ACID、一致性读以及分布式事务中。

2、SCN的内部存储方式:在Oracle内部,SCN分为两部分存储,分别称之为scn wrap和scn base。实际上SCN长度为48位,即它其实就是一个48位的整数。由于在早些年通常只能处理32位甚至是16位的数据,所以分成了低32位(scn base)和高16位(scn wrap)。那么SCN这个48位长的整数,最大就是2^48(281万亿,281474976710656)

3、Maximum Reasonable SCN:在当前时间点,SCN最大允许达到的SCN值。也称为Reasonable SCN Limit,简称RSL。SCN Headroom即当前时间点SCN以每秒最大的增长速度达到RSL值所需时间,其计算公式为:

(当前时间-1988年1月1日00:00:00)×24×3600×SCN每秒最大的可能增长速度

  注:

  •  (当前时间-1988年1月1日)得到天数,为方便计算,每月按照31天计算。
  • SCN每秒最大的可能增长速率跟Oracle版本有一定的关系,在11.2.0.2之前是16384(即16K),在11.2.0.2及之后版本是32768(即32K)。在11.2.0.2及以上的版本中有一个隐含参数_max_reasonable_scn_rate,其默认值就是32768(不建议调整这个值)。根据对各个数据库版本的补丁13498243中自带的scnhealthcheck.sql研究,SCN Headroom计算公式中的最大速率均为定义为16k。
  • Alert日志中的SCN Headroom剩余天数为此刻达到RSL所需天数,并非真正耗尽数据库SCN的时间,SCN Headroom每一秒都在增长。

二、     研究过程

1、 SCN Headroom过低问题发现

(1)  alert日志可能出现以下告警:

1、Warning - High Database SCN: Current SCN value is 0x0b7b.0008e40b, threshold SCN value is 0x0b75.055dc000
If you have not previously reported this warning on this database, please notify Oracle Support so that additional diagnosis can be performed.
2、Warning: The SCN headroom for this database is only NN days!
3、Warning: The SCN headroom for this database is only N hours!
4、WARNING: This patch can not take full effect until this RAC database has been completely shutdown and restarted again.
Oracle recommends that it is done at the earliest convenience.
5、Rejected the attempt to advance SCN over limit by 9374 hours worth to 0x0c00.00000f66, by distributed transaction remote logon, remote DB: REMDB.XX.ORACLE.COM.
Client info : DB logon user ME, machine yy, program sqlplu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值