文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

实战演练丨SCN太大引发ORA-600[2252]

2024-04-02 19:55

关注
实战演练丨SCN太大引发ORA-600[2252]

作者 | 张维照,云和恩墨技术专家,Oracle ACEA,2006年起从事数据库管理工作,2009年转Oracle,从事过多套TB级省级工商、医疗、交通、人社、电信运营等数据库维护优化工作,擅长Oracle数据库性能问题的分析与解决、故障分析、升级迁移。个人博客:www.anbob.com

案例背景

前段时间有个朋友遇到的问题,让我协助分析,现象是一个地市的数据库与省级数据库通过DBLINK连接时提示ORA-600 2252,但是其它地市与省级的DBLINK正常。

案例详情

具体分析,错误如下:

---------------------------SCN----------15756464714
sys@ANBOB>select current_scn,dbms_flashback.get_system_change_number scn from v$database;
CURRENT_SCN                  SCN-------------------- --------------------15756464716          15756464716
-- 确认时间,时区select CURRENT_TIMESTAMP, LOCALTIMESTAMP FROM DUAL;
-- 现场的人整理了本地(DBa)、远程(DBb)库的系统时间和SCN.
DBa          DBb
--------      ----------
OS date: 20171204 15:50        20171204 15:48

sysdate: 20171204 ..        20171204 ..
scn: 15756464722        17117005290806
DB ver: 11.2.0.1            11.2.0.3
OS Plat: Windows            Aix


注意:
本地库和远程库的SCN不在一个数量级,相差1000倍,其实我们可以根据当前的时间计算一下SCN 的最大允许值,远程库的SCN 远大于本地库的最大允许SCN(简称RSL,下面会补充相关知识)。关于SCN可以查阅MOS note <<System Change Number(SCN), Headroom, Security and Patch Information(文档 ID 1376995.1)>>

查询远程库的SCN Headroom

SQL> select
2   version,
3   to_char(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') DATE_TIME,
4   ((((
5    ((to_number(to_char(sysdate, 'YYYY')) - 1988) * 12 * 31 * 24 * 60 * 60) +
6    ((to_number(to_char(sysdate, 'MM')) - 1) * 31 * 24 * 60 * 60) +
7    (((to_number(to_char(sysdate, 'DD')) - 1)) * 24 * 60 * 60) +
8    (to_number(to_char(sysdate, 'HH24')) * 60 * 60) +
9    (to_number(to_char(sysdate, 'MI')) * 60) +
10    (to_number(to_char(sysdate, 'SS')))
11   ) * (16 * 1024)) - dbms_flashback.get_system_change_number)
12   / (16 * 1024 * 60 * 60 * 24)
13   ) indicator
14    from v$instance
15  ;
VERSION           DATE_TIME            INDICATOR
----------------- ------------------- ----------
11.2.0.3.0        2017/12/04 17:15:26 -959.18726

注意:

Oops!!!  上面的脚本也较常见来自官方的scnhealthcheck.sql, INDICATOR是距离SCN Headroom(天花板)的天数,是负数说明已经超过天花板上天了。当然SCN限制是决定不会也不允许超过天花板的。 那会不会是远程库有问题?为什么其它地市的库可以跟这个远程库查询?负数的原因是什么?

基实上面的脚本对于11.2.0.2以后的数据库还需要确认另一处,就是每秒16K的限制从11G R2(11.2.0.2)起已经改变为32K(我查了11.2.0.3 11.2.0.4 12.2.0.1默认都是32K), 有隐藏参数”_max_reasonable_scn_rate”控制,同时需要使用下面的SQL语句实际确认是16K还是32K(只对11.2.0.2以后的版本有意义),因为我发现有些11.2的数据库仍然使用的是16K(也许是低版本直接升级原因,也许是某个PSU临时回归了16K的增速):

sys@ANBOB_RMT>@pd _max_reasonable_scn_rate
Show all parameters and session values from x$ksppi/x$ksppcv...
INDX I_HEX NAME                         VALUE      DESCRIPTION
-------------------- ----- ---------------------------- ---------- ---------------------------
978   3D2 _max_reasonable_scn_rate     32768      Max reasonable SCN rate
sys@ANBOB_RMT>select decode(bitand(DI2FLAG,65536),65536,'Y','N') using16 from x$kccdi2;
U
-
N
sys@ANBOB_RMT>select
version,
to_char(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') DATE_TIME,
((((((to_number(to_char(sysdate, 'YYYY')) - 1988) * 12 * 31 * 24 * 60 * 60) +
((to_number(to_char(sysdate, 'MM')) - 1) * 31 * 24 * 60 * 60) +
(((to_number(to_char(sysdate, 'DD')) - 1)) * 24 * 60 * 60) +
(to_number(to_char(sysdate, 'HH24')) * 60 * 60) +
(to_number(to_char(sysdate, 'MI')) * 60) +
(to_number(to_char(sysdate, 'SS')))) * (32 * 1024)) - dbms_flashback.get_system_change_number)/ (32 * 1024 * 60 * 60 * 24)) indicatorfrom v$instance;
VERSION           DATE_TIME            INDICATOR
----------------- ------------------- ----------
11.2.0.3.0        2017/12/04 17:35:26 5087.41908
现在总结一下这个问题:

SCN增长速率加快了,如果32k的速度使用6bytes的scn总上限也就不是过去说的可用500年了,所以从12.2又引入了big scn加到了8bytes。且在12.2版本中对于SCN传播跳跃,增加了2个视图可以定位源头, 使用DBA_EXTERNAL_SCN_ACTIVITY  DBA_DB_LINK_SOURCES and DBA_DB_LINK关连就可以,2012年1月以后的PSU起或在11G的部份版本中提供了控制SCN相关参数:

SCN相关知识点:
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯