查看原文
其他

如何拯救你,数据库“假期综合征”?


今年春节假期,过的还顺心吗?下面要说的主人公,大概经历了假期最糟心的一天。


新年才刚过,还沉浸在新年的喜悦里。但是,A客户的数据库却“嗨”不起来。因为归档日志满导致挂起,数据库无法正常使用。(客户环境是Linux平台下双节点rac ,数据库版本11.2.0.4)


美创春节保障小分队的值班工程师小汤,接到客户的救急电话后,立马上线远程检查。一番“剥丝抽茧”后发现,其中一个节点由于oracle软件目录使用率100%,导致本地连接数据库异常,归档删除脚本策略失效。


而客户每天归档量又非常巨大,归档没能及时删除导致空间不足而引起数据库挂起。


发现问题了,工程师开启技能,对故障进行修复。查看软件目录子目录使用情况,发现监听日志目录使用量在十几个G,清理监听日志后数据库本地连接恢复正常,归档删除脚本策略生效,数据库业务恢复正常。


这个例子是因为监听日志未及时清理,进而引发软件目录满,归档目录满等一系列连环问题,最终导致数据库业务异常。 



每逢节假日,都是运维故障多发期。一方面,很多客户选择在节假日开展数据库、系统升级维护,另一方面,人为疏忽发生的概率增加。美创科技每每在这关键时间,都会组建运维保障小分队,为客户的数据库、系统等保驾护航。


多年的运维经验,对节假日容易碰到的数据库问题做了盘点梳理除了上面提到的空间问题,还包括: 


01

软件问题

实例:

某客户节假日期间服务器中病毒,导致oracle软件中某些组件被删除,数据库无法启动。工程师在其它机器上安装相同版本正常的oracle软件,再将数据文件控制文件、参数文件等拷贝到新机器上,异机迁移恢复了数据库。


结论:

节假日期间要保证网络环境的安全,保证数据安全,防止被黑客攻击。对于数据库而言,打上最新的补丁,避免出现软件问题。


针对软件问题导致的故障,要根据不同情况来处理。如果是数据库、操作系统bug引起的故障,通过设置参数等方法绕过bug来修复故障;若是rac集群问题引起的故障,需要具体分析日志判断错误原因。


02

硬件问题

实例:

某客户数据库服务器cpu使用率几乎百分之百,数据库非常卡。环境是rac双节点,检查发现一个节点由于心跳网络问题导致该节点被驱逐,日常两个节点1700多个外部连接平均分配到两个节点,故障时正在使用的节点连接数达到3500,资源耗尽。工程师将一节点心跳网络修复后重启实例,恢复正常。


结论:

网络、存储、光纤、光交等硬件会引起服务器、数据库宕机,节假日前期检查硬件是否正常,避免出现硬件问题导致的故障。


03

sql性能问题

实例:

某医院客户节假日系统某模块卡,检查发现是某sql消耗大量资源运行缓慢,工程师找到该sql进行优化,检查关联表的last_analyzed,发现很久没有更新,导致统计信息不准确而影响执行计划。重新收集关联表的统计信息,运行更合理执行计划,从而解决某模块卡的问题。


结论:

由于sql导致数据库运行慢的性能问题,需要具体分析。


04

人为问题

实例:

某客户重新建实例,在12.1rac环境下oracle用户dbca建库的时候无法读取到asm磁盘组。检查发现是在grid用户的sqlnet.ora中添加了DIAG_ADR_ENABLED = off参数导致的。在11g环境下是可以加这一个参数的,但12.1环境下已不适用了。


结论:

有些参数不一定适用新版本的数据库,要以严谨的态度尽量避免人为误操作引起的问题。而因人为产生的误删除误操作或者断电等,引起的数据库损坏,需要备份恢复数据库;如果用户表被锁,需要解锁。



还要特别强调一点是,如果数据库配置了“备份”,那么还需要检查数据库日常的物理逻辑备份是否正常。如果没有备份,建议部署。万一节假日出现问题需要恢复数据,一份正常的数据备份集是最好的良药!



总而言之,节假日期间,数据库运维故障高发,要在节前对硬件、软件、备份等进行全面检查,以好的状态迎接节假日。同时,要加强运维管理,避免人为误操作的发生。当然,如果假期数据库不消停,及时call美创,专业的运维技术团队陪你安心过节。



阅读推荐


围观

医院突遭比特币勒索?美创科技“诺亚”防勒索系统,对勒索病毒说不!

热文

美创科技总经理柳遵梁年会致辞  | 赢战2018,创数据安全新时代

热文

盘点 | 2017年勒索攻击大事件,你中了几招?


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存