在 Oracle 官方支持站点 MOS 上,最近发布了两篇告警文章
- Oracle Databases Need to be Patched to a Minimum Patchset/PSU/RU level before April 2019 (Doc ID 2361478.1)
- Mandatory Patching Requirement for Database Versions 11.2.0.3 or Earlier, Using DB Links (Doc ID 2335265.1)
官方给出了如下声明
对于database link带来影响的原因如下
关于两篇文档内容总结如下
1、 通过 DB Link 的查询会同步数据库的 SCN,也就是这个原理会导致很多 SCN 耗尽的 Headroom 问题
2、 如果都是未应用补丁的低版本数据库互访,不会出现问题;但是如果是未应用补丁的低版本和应用了补丁的高版本之间互访,就可能出问题。
3、 如果低版本和高版本互访,在2019年4月之后,跨 DB Link 的访问不一定会出现问题,尤其是 SCN 的增长率维持低位的数据库;但是由于算法的改变,很可能会出现问题,而且概率很高;
4、 引入这样的修改和补丁,是因为 SCN 是 Oracle 的核心机制,过去遇到的 Headroom问题必须获得彻底消除,所以算法需要调整,这是非常核心的改变。
5、 如果数据库全部维持在低版本,或者不通过 DB Link 互访,则无所谓; Oracle 也提供禁用该特性的功能,但是不保证之后不改变。
在 MOS 上文档 1393360.1中,就有各种已知的描述,如果低版本的数据库 SCN 不能抬升,那么就可能遭遇:ORA-19706: invalid SCN 的错误(详情见附件)。
对于Oracle官方给出的该声明,整体建议如下:
方案一:对于低版本和高版本互访的dblink链接进行应用改造,如非必要,请尽可能采用客户端连接的方式进行交互
方案二:对dblink的源端以及目标端数据库进行补丁升级,以符合官方要求版本太低的可进行跨版本升级,但需要先对稳定性以及性能进行调整测试,如SPA等。
不建议:关闭scn新特性
因为当前关闭新特性是为了向下兼容,那么今后新数据库部署,就都需要关闭该功能,但是Oracle 虽然现在提供禁用该特性的功能,却不保证之后不改变,以后也会有诸多功能基于此特性开发,越往后进行应用,覆盖面约广,所以建议在过渡期内升级打patch,而不是等该特性运行后,大面积实行。
参考:http://www.sohu.com/a/225739395_505827
http://ju.outofmemory.cn/entry/354015