运维日记|认识SCN – 作者:database

近期,各行各业因ORACLE SCN异常增长问题显得异常“热闹”。例如2019年7月份某社保,因SCN异常增长导致医保刷卡业务系统无法正常使用,致使人们在各大医院无法正常刷卡就医、买药等,给人们生活带来极大的不便;同月,某运营商也因SCN异常增长问题,出现地市数据同步异常,导致该运营商用户无法查询话费、账单等问题,给广大用户带来一定不便。除此之外,在其他行业也出现过因SCN异常增长导致业务系统无法正常使用等问题,给社会带来了一定的影响。

那么SCN到底是什么,导致SCN异常增长原因又有哪些,SCN异常增长又会带来哪些危害,又该如何预防SCN的异常增长呢?

SCN是Oracle中很基础,但同时也是很重要的东西,它是一个单向增长的“时钟”,广泛应用于数据库的恢复、事务ACID、一致性读还有分布式事务中。

SCN在正常情况下,按照一定速率增长,基本不会给数据库带来影响;但是当人为调整或通过Database Link传播,则会导致等导致SCN异常增长过大,造成数据库不可用。

这里要说一下什么是Database Link。Database Link是定义一个数据库到另一个数据库的路径的对象,Database Link允许查询远程表及执行远程程序。通俗点说就是:比如现在有两个数据库,互相独立,如果我们现在登陆当前数据库,想访问另一个数据库,如果我们建了Database Link,我们就可以直接在当前数据库访问另一个数据库。

Database Link是如何传播SCN的呢?

举个例子,如果A库通过Database Link连接到B库,如果A库的SCN高于B库的SCN,那么B库就会递增SCN到跟A库一样,反之如果A库的SCN低于B库的SCN,那么A库的SCN会递增到跟B库的SCN一样。也就是说,涉及到Database Link进行操作的多个库,它们会将SCN同步到这些库中的最大的SCN。

Database Link是造成SCN异常增长一个重要因素,因此掌握各数据库之间的Database Link关系显得尤为重要。但是随着信息化高速发展,业务系统越来越繁杂,往往可能由于制度的不完善、人员调整等因素,无法完整记录各业务系统之间的关系,各数据库之间的Database Link关系更是瞎子摸黑。

为了解决这种问题,美创运维工具箱提供DB-LINK图谱工具,DB-LINK图谱可展示直至当前时间,各数据库之间的数据交互关系图及各数据库版本等详细信息。运维人员利用DB-LINK图谱工具,可以清晰地掌握各数据库之间的Database Link关系。同时,该工具为SCN兼容性问题的补丁实施也提供了坚实的依据。

image.png

是不是只要存在Database Link关系就一定会造成SCN异常增长?当然不是,数据库的版本高低是另一重要因素。我们定义11.2.0.4及以上版本为高版本,其他的为低版本。如果数据库全是高版本,或全是低版本,且未来不会有变化,理论上就不会存在SCN异常增长问题。如果高低版本都有,且高低版本之间存在Database Link关系,则有很大可能造成SCN异常增长。

我们如何准确判断某个库是否存在SCN异常增长风险呢?利用美创数据库运维工具箱提供的SCN检测工具,可以轻松了解数据库是否存在SCN异常增长风险。SCN检测工具从数据库版本、补丁、SCN增长速率等维度检测当前数据库的SCN是否存在增长异常;同时,内置的专家系统,提供专业修复建议,为修复SCN BUG提供可靠的依据。

image.png

最后,其实大家不必因SCN异常增长问题而感到恐慌,利用美创数据库运维工具箱提供的DB-LINK图谱和SCN检测工具,就能做到防患于未然,确保数据库的连续可用,为业务系统的连续可用提供坚实的基础。


美创运维中心数据库服务团队拥有Oracle ACE 1人、OCM 10余人、数十名Oracle OCP、MySQL OCP、红帽RHCA、中间件weblogic、tuxedo认证、达梦工程师 ,著有《Oracle DBA实战攻略》,《Oracle数据库性能优化方法和最佳实践》,《Oracle内核技术揭秘》等多本数据运维优化书籍。目前运维各类数据库合计2000余套,精通Oracle、MySQL、SQLServer、DB2、PostgreSQL、达梦等主流商业和开源数据库。并成为首批国内达梦战略合作伙伴之一,拥有海量经验和完善的人员培养体系。并同时提供超融合,私有云整体解决方案。

来源:freebuf.com 2020-06-05 15:15:32 by: database

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论