警告:ORA-00600 2252 错误正在SCN问题下不断爆发

自2019年6月23日之后,Oracle启用了 SCN 自动 Auto-Rollover 的新特性,也就是自动调整了 SCN 的增长率算法(缺省32K 每秒,允许 SCN 最高以每秒 96K 计算)。注意,这里说的自动,是指不需要用户做任何主动的变化,数据库会自动调整。

在告警日志中,可以看到如下一行信息:

Database SCN compatibility auto-rollover – control file update 

SCN compatibility changed from 1 to 3 (auto-rollover)

而这一调整生效之后,带来的一个可能的负面影响就是:当SCN增长率高的数据库连接增长率低的数据库,如果低版本的数据库无法同步拉高SCN,就会出现ORA-600 2552错误,事务或查询无法进行,影响业务运行

这个问题直接引发的错误号:ORA-600 2252,在Google搜索上,我的2012年的历史文章排在第一位:《ORA-600 2252 错误与SCN的一致性》,这篇文章描述了时间相关的一种情况。

针对 SCN 兼容性问题,我们曾经发布过一个系列的文章去阐述,所以在此不再赘述,以下链接供参考:

  1. 揭秘Oracle 11.2.0.4前版本DB Link必须在2019年4月前升级
  2. 解决方案:Oracle的DB Link问题及2019年4月升级路线详述
  3. Oracle全面修正了关于DB Link和SCN补丁的公告
  4. Oracle 的 DBMS_SCN 修正以及SCN的auto-rollover新特性

在『DBASK』问答小程序中,用户在线提问,专家随时解答,每期会整理出一些重要的问题与回复。

现在,我们首先看看官方对 ORA-600 2552 错误的解释:

symptom: Query that uses a database link between two machines fails cause: Argument [2252] for the ORA-00600 indicates that the System Change Number (SCN) Oracle is calculating for a transaction is an unreasonable number. 
The SCN is calculated based in part on the host system date. If the system date is a LONG way off, the maximum possible value calculated for the SCN may be impossibly large which would result in an ORA-600[2252].

翻译一下就是:

ORA-600 的 2552 号错误,表明 Oracle 为事务计算出来的 SCN 号是不合理的数值,其中的一个可能原因和系统时间相关,因为 SCN 的计算和时间有关,如果操作系统的时间错误,就可能导致这个问题。

当然,最近爆发的 2552 问题和时间无关,是和 SCN 的算法改变相关。对于高版本的数据库,SCN的合理值很高,而对于低版本的数据库,SCN的合理值较低,当通过 DB Link 连接这两个数据库时,因为分布式事务需要同步两个数据库之间的SCN,而低版本数据库不可抬升,就出现了 2552 错误。

当出现这个错误之后,意味着,高版本的数据库 SCN 已经跃升到高值,这个跃迁不可逆转,所以唯一的办法就是升级低版本的数据库

如果在遇到这个错误之前,可以针对高版本的数据库禁用自动的SCN Roll-Over新特性,继续保持低增长率,则不会出现和低版本失联问题。

我们再来看一下出现这类问题的场景和症状:

列如,主生产数据库为 12.2/12.1.0.2/11.2.0.4等高版本(SCN 增长率高),但还有核心库为10.2.0.4.0,为低版本(SCN增长率低)。

主生产数据库和核心库通过 DB Link 进行核心业务数据交互,这其中的过程决定业务交易的成败。

  • 关键点:客户未在6/23前升级低版本,也没有关闭高版本的SCN Auto RollOver。
  • 案发场景:某12.1.0.2的数据库,由于相连某个数据库发生SCN异常增长,通过DB Link被推高到同样位置。

2019-08-12T16:17:13.142309+08:00
Session (10381,312): EXTERNAL SCN ALERT: Advanced SCN by 1244395 minutes worth to 0x000016cbca6399b7, by outbound distributed transaction begin with returned scn
Session (10381,312): EXTERNAL SCN SOURCE: Outbound connection to DBID: xxxx GLOBAL_DB_NAME: DXHX
Session (10381,312): EXTERNAL SCN SOURCE: DBlink Name: XXXX, Connect String: (DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = no) (FAILOVER=ON) (ADDRESS = (PROTOCOL = TCP)(HOST = XXXX)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = XXXX)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = XXXX) (failover_mode=(type=select)(method=basic)))), Remote Machine: XXX

这个高版本数据库SCN异常跳增涨到2.39E13,而当前的16k速率SCN上限仅为1.66E13。

以下查询诊断输出了SCN的跳变时间,正常情况下数据库的 SCN 位于低位,但是在某个时间受其他数据库影响发生跳变:

Time SCN Changed By Time
————- ——————–
20190812-1600 16,625,261,888,353
20190812-1601 16,625,261,888,724
20190812-1644 16,625,269,791,170
20190812-1728 16,625,271,982,215 ==> 16k速率下SCN, 离headroom 约13天
20190812-1813 23,985,018,894,186 ==> 96k速率下SCN, 远高于 16k速率下headroom
20190812-1814 23,985,018,894,301
20190812-1900 23,985,020,302,986
20190812-1947 23,985,022,403,528
20190812-2028 23,985,024,519,726
20190812-2028 23,985,024,522,323
20190812-2119 23,985,027,176,419

该数据库需要通过DB Link访问低版本数据库,由于SCN超出低版本数据库SCN 的最大限制,导致ORA-00600 2252 错误。两者之间DB Link无法再工作,严重影响业务:

ORA-00600: 内部错误代码, 参数: [2252], [2834], [4076555716], [], [], [], [], []

由于 SCN 具有传播性,所有和高 SCN 数据库相连接的数据库,都抬升了 SCN,这些数据库连接低版本平台都会出现错误,所有相关业务都可能遭受影响,这时候就只能通过紧急升级低版本数据库来解决问题。

再次警示:请大家再次检查自己管理的数据库,是否还有高低版本混用的情况,如果有,重点关注是否有高版本数据库的SCN超越16k headroom的情况,最好做成监控脚本,万一有超过需要尽快升级旧版本

整理了一个监控脚本供大家参考:https://www.modb.pro/download/3131(复制地址至浏览器或点击左下角的「阅读原文」)

以上问题对于有大量分支机构数据库的全国性企业,尤其需要重视。

此前我们低估了这一罕见异常可能出现的概率,根据墨菲定律,可能会发生的事情是一定会发生的。所以强烈建议大家要么及时升级低版本的数据库,要么禁用高版本数据库的 Auto-Rollover 特性(同时降低 SCN 兼容性级别至 1 ),避免问题出现时措手不及而影响业务,造成损失

Image placeholder
lanatus
未设置
  43人点赞

没有讨论,发表一下自己的看法吧

推荐文章
一通骚操作,我把SQL执行效率提高了10000000倍!

场景我用的数据库是mysql5.6,下面简单的介绍下场景课程表:create table Course(c_id int PRIMARY KEY,name varchar(10))数据100条学生表:

看!闲鱼在ServiceMesh的探索和实践

背景在阿里服务端开发以Java为主的大背景下,其他异构语言业务如何调用现有Java服务,如何与集团中间件打通,就成为使用非Java语言团队必须要解决的首要问题。现状在ServiceMesh方案成熟之前

盗版12306骗3000万人下载,暴利高仿App是如何花式捞钱的?

眼看着春运一天一天临近,我按捺不住激动的心情,准备加入抢票大军。可是,当我在应用商城搜索12306时,却发现一大批“12306”。这些App下载量从几万到几千万(未标“官方版”的累计下载量超一千万),

老程序员肺腑忠告:千万别一辈子靠技术生存!

作为一个多年开发经验的老伙计,当回过头来想一想自己,觉得特别想对那些初学JAVA/DOT、NET技术的朋友说点心里话,希望你们能从我们的体会中,多少受点启发。 1一个程序员正确的自我心态究竟是什么样?

毕马威报告:钉钉活跃用户数超过2到10名之和

4月17日,毕马威、阿里研究院联合举办的“智能经济主题报告发布会”在北京召开。会上毕马威、阿里研究院联合发布了《百年跃变:浮现中的智能化组织》报告。报告中显示,钉钉在智能移动办公领域的活跃用户数排名第

全球数据泄露报告:内部威胁成数据安全最大风险!

一份最新报告显示,由现任和离职员工引起的内部威胁使公司容易遭受破坏,并使公司数据面临风险。Code42发布的《2019年全球数据泄露报告》还质疑,是否需要资助和部署正确的数据安全解决方案来阻止内部威胁

IDC发布2018下半年中国公有云市场报告:AWS以6.4%的份额名列第四

AWS在全球云计算市场一哥的地位毫无争议,但在中国市场如何?是依然霸气还是水土不服,虽然AWS从不公布中国的业务数据,但是有一些第三方数据在一定程度上反映了AWS在中国的发展势头。IDC在2018年1

官宣:Oracle Database 19.3 本地部署版正式发布

OracleDatabase19c(19.3.0)forLinuxx86-64可以通过OTN或eDelivery下载了,对于已经使用19.2的用户,针对19.3.0forLinux&Solaris的R

2019年7月数据库流行度排行:Oracle王者归来获大幅增长

2019已然走过一半,DB-Engines的数据库流行度排行榜7月出炉,这可以算是数据库流行度的半年报了。7月的明星产品是Oracle,其积分大幅增长了22分,较去年同期增长了43分,这说明Oracl

OOW2019 :Oracle数据管理技术创新盘点

Oracle作为传统关系型数据库的霸主,不管是数据库性能还是商业上,一直以来都是全球各大数据库厂商致力追赶的对象。近年来,全球云数据库市场迅速发展,Gartner预测,到2023年,世界上四分之三的数

Oracle SCN机制详细解读

深入剖析–OracleSCN机制详细解读http://blog.chinaunix.net/uid-20274021-id-1969571.htmlSCN即系统改变号(SystemChangeNumb

Oracle 之利用BBED修改数据块SCN—-没有备份数据文件的数据恢复

测试环境 OS:redhat6.6 oracle:12.1.0.2  BBED(OracleBlockBrowerandEDitorTool),用来直接查看和修改数据文件数据的一个工具,是Orac

ie11下不能引入外部css怎么解决?

ie11下不能引入外部css怎么解决?问题:在IE11下使用link标签引入css时,无法正常引入,直接在页面中使用style标签没问题。原因:头文件的问题。解决方法:●删除头部的●或者,将头部改成

002.06 Klondike Solitaire - PsSimleGUI 的应用

建檔日期:2019/12/04 更新日期:None 语言:Python3.7.2,PySimpleGUI4.6.0 系统:Win10Ver.10.0.17763主题:002.06KlondikeSol

红帽OpenShift得到IBM、AWS和Azure的支持,生态能力正不断扩大

继IBM在11月6日宣布,IBMCloudPaks容器云的底层技术通过红帽OpenShift来支持后;AWS也于11月7日表示,原生集成AWS服务的红帽OpenShift容器平台已可用于由光环新网技术

打造“数字化基石”,深信服在不断开疆沃土!

2019年深信服创新大会,已圆满结束,但也是一个全新的开始!深信服将以数字化转型为契机,打造更敏捷、更开放、更智能的新IT基础架构能力。为了具备这样的能力,深信服一直在研发和市场方面做大量投入。关于这

从Oracle到MongoDB:为什么AWS不断抛弃合作伙伴?

亚马逊因不断与其商业伙伴分道扬镳而备受关注,在决定放弃Oracle数据库转而使用自己的服务之后,Amazon现在正在尝试用自己的“兼容”版本DocumentDB取代MongoDB。有趣的是,AWS宣布

是的,你的AI技能正在“贬值”

大数据文摘出品编译:小蒋、李可、狗小白、周素云我们正处于AI创业热潮之中,机器学习专家的薪资水平水涨船高,投资者也乐于对AI初创公司慷慨解囊。AI的普及成为推动社会生产力标志,必将改变我们的生活。但是

为什么SQL正在击败NoSQL,这对未来的数据意味着什么

导读:经过多年的沉寂之后,今天的SQL正在复出。缘由如何?这对数据社区有什么影响?看看本文的分析。以下为译文。自从可以利用计算机做事以来,我们一直在收集的数据以指数级的速度在增长,因此对于数据存储、处

PHPStorm快捷键大全,不断更新收藏中(熟练使用后基本上告别鼠标了!)

课程推荐:PHP开发工程师--学习猿地精品课程 PHPStorm的快捷键对于编程开发有非常大的帮助,熟练使用可以提高自己的开发效率。本篇教程持续不断收录PHPStorm的快捷键用法。 1.PHPSto

大碗宽面 VS 律师函警告,情感分析吴亦凡自黑式圈粉!

 作者|AlfredWu 来源| Alfred数据室“你看这个面它又长又宽,就像这个碗它又大又圆”。一直被网友们调侃的freestyle梗,没想到真的被说唱导师吴亦凡写成了自黑的歌——《大碗宽面》。由

到2025年,SDN市场将达到1000亿美元

虽然NFV不断发展,但软件定义网络(SDN)也在服务提供商的网络中蓬勃发展。根据GlobalMarketInsights的报告显示,到2025年,SDN市场将从去年的80多亿美元增加的1000亿美元。

我的天!这是史上最烂的项目:苦撑12年,600多万行代码…

编译:欧剃来源:projectfailures.wordpress.com转载自:Java技术栈你见过最烂的项目,撑了多长时间才完蛋?六个月?一年?今天介绍的这个奇葩项目,不但一开始就烂得透透的,还硬

Ambassador 0.52 新特性:会话亲和性、负载均衡控制、gRPC-Web

本文由公众号EAWorld翻译发表,转载需注明出处。作者:RichardLi 译者:白小白 原文:http://t.cn/E6cZoyG现时的云原生应用由多种异构的服务或者微服务组成,服务间、服务与客

cnpm如何安装vue?

如何使用cnpm安装vue?步骤1:确保你电脑上安装了最新版本的Node.js。步骤2:安装淘宝镜像(国内使用npm速度很慢,可以使用淘宝定制的cnpm(gzip压缩支持)命令行工具代替默认的npm)