数据库升级具有风险极高、操作复杂等特点。关联系统多、涉及专业多、数据量大的核心系统,一旦升级失败势必给公司生产经营带来重大损失。
在国网某省公司营销业务应用系统数据库升级项目中,云和恩墨专家团队从前期的方案论证及审查、网络及硬件环境搭建、两次应用软件测试、三次数据同步及应用迁移测试,到当天现场的实施、后期的保障,助力客户圆满完成数据库升级工作。
2019年5月18日04:34,随着国网某省公司营销业务应用系统中客户第一笔电费通过支付通缴纳成功,标志着此次系统数据库升级工作圆满完成。
2018年2月,Oracle官方发布预警,Oracle数据库将启用SCN新机制,低版本的数据库若在2019年6月23日前未升级至高版本数据库,将会存在灾难性宕机的可能性。
国网某省公司营销业务应用系统使用的数据库为Oracle,升级前版本为10.2.0.4。从2018年9月开始谋划系统升级的工作。
数据库升级具有风险极高、操作复杂等特点,且营销业务应用系统关联系统多、涉及专业多、数据量大,一旦升级失败势必给公司生产经营带来重大损失。因此需要完备的谋划和专业的技术实施支撑。
云和恩墨凭借专业的技术团队、丰富的升级经验,成为了本次数据库升级的服务商。
在服务过程中,云和恩墨前期与客户共同谋划此项工作,完成了方案论证及审查、网络及硬件环境搭建、两次应用软件测试、三次数据同步及应用迁移测试等工作。在升级当晚,两位云和恩墨Oracle ACE作为现场顾问,保障了本次数据库升级工作的顺利完成。
本次数据库升级圆满解决了营销业务应用系统数据库长期未安装漏洞补丁、存储空间不足等运行风险隐患,确保了系统的稳定性和业务的连续性。后续,云和恩墨配合客户的技术人员成立应急运维保障工作组,7*24小时待岗待命,直至系统平稳运行。
Oracle SCN背景介绍
2013年6月,Oracle官方宣布针对10.2.0.4版本停止所有服务支持,不再发布漏洞补丁。
2018年2月,Oracle官方发布预警,Oracle数据库将启用SCN新机制,低版本的数据库若在2019年6月23日前未升级至高版本数据库,将会存在灾难性宕机的可能性。
在之前的文章中,我们阐述了“预警揭秘:倒计时炸弹11.2.0.4前版本DB Link必须在2019年4月升级真相”,我想首先回答一下这个问题,可能很多人心存疑惑,这个问题严重吗?有多严重?会影响到我吗?
首先,我们分析这个问题的起因就是因为Oracle用了空前严重的措辞,11.2.0.3 及以前版本,使用DB Link的,在2019年4月前必须应用到推荐的补丁。
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)
这个警告是非常严重的。
如果经历过 2011 - 2013 年左右,通宵达旦升级 SCN 补丁的DBA都会心有余悸、印象深刻,如果数据库的 SCN 接近极限,则数据库就可能频繁出错,最坏的情况是事务都执行不了,数据库停顿。由于SCN不可以重置,严重情况甚至要重建数据库。
所以和 SCN 相关的问题,都是很严重的问题。
那么,我们该如何面对这个问题呢?
首先,关于补丁,比如很多朋友问 10.2.0.5 有没有补丁,请看下图,目前Oracle在支持的最低版本是11g。而且 11.2.0.4 将在 2019年1月1日进入扩展支持期(Extended Support),也就是必须要有支持合同才为用户提供补丁,不对外公开发布补丁了。所以,所有 10g 的版本,已经没有补丁了。例外的是 11.1.0.7 和 11.2.0.3 有补丁。所以这个问题应该清楚了。
版本升级路线如下:
豁免版本:11.2.0.4 和 12.1.0.2 及以上版本,已然自带加持;
10g 版本:你可以选择升级到 11g 或者 12c;
11.1版本:你可以选择升级到11.1.0.7 版本,应用补丁;
11.2版本:你可以选择升级到11.2.0.3 版本,应用补丁;
12.1版本:你至少升级到 12.1.0.2.0 版本;
关于这个DB Link 问题的影响,简要再总结一下:
首先定义一下高版本:就是 11.2.0.4 和 12.1.0.2 及其以上版本,和打过补丁的 11.1.0.7 和 11.2.0.3 版本;
再定义一下低版本:不再上述版本中的;
以下几点一目了然:
低版本之间通过DB Link互联,不受影响;
低版本和高版本之间通过DB Link互联,可能受到影响,主要取决于高 SCN 系统的高度;
受影响是因为新版本的 SCN 增长算法改变,可能瞬间抬升低版本的 SCN 至越界;
越界只影响跨 DB Link 的访问,不影响本数据库运行;
如果你的系统SCN都很低,增长也很慢,就基本不用担心,不升级也没有问题;
再明确一下,哪些版本有补丁:
11.2.0.4 和 12.1.0.2 及其以上版本,天然自带加持;
11.1.0.7 和 11.2.0.3 版本有补丁,具体见下图,Windows版本和其他平台不同;
其余版本无补丁;
很多朋友提出了很多问题,在此一一解答如下:
SCN的问题和版本有关吗?
任何版本都可能因为SCN增长过快而遭受SCN拒绝,数据库停顿的问题。高版本在尝试解决(这个修正就是),低版本不予修补。
10g受影响吗?
受影响没补丁,但是大前提是有DB Link,如果仅仅是低版本之间访问,没有问题(不受SCN算法变动影响,但是自身SCN过高仍然会有问题),低版本和高版本通过DB Link互访,可能有问题。
高版本和其它低版本通过dblink互联就算中标了,还是其它11g版本打了这次的补丁的才算?
是的,但是仅仅是跨DB Link的SQL失败,高版本数据库本身不受影响。
10.2.0.4和10.2.0.5的RAC受到影响么?
如第一个问题,这两个版本互访都没有问题,和高版本跨DB Link访问才有风险。
这问题会扩展传播吗,如10.2.0.5连接11.2.0.4,10g被传染,又有个新的10g连接了被传染的10g.会扩散吗?
会的,SCN问题天然会通过DB Link扩展传播。
我这里用11204连了10g,报scn错了。只能升级吗?很多10g。
不一定非要升级,只要能够有效控制SCN,不要增长过快,就没有问题。一般来说跳变SCN的源数据库是能够排查和解决的。
如果在此问题上需要进一步的协助,请联系云和恩墨的技术团队,更详细的解决方案将提供给我们的服务客户。
相关阅读
Oracle 12.2 升级案例:云和恩墨助力某市人社核心系统升级迁移
预警揭秘:倒计时炸弹11.2.0.4前版本DB Link必须在2019年4月升级真相
更新通报:Oracle全面修正了关于DB Link和SCN补丁的公告