中国首个坚持原创严肃内容的健康医疗信息化新媒体
最新消息:欢迎您,亲爱的读者!您可以通过QQ号或新浪、腾信微博账号直接在评论处登录,发表评论并选择转发到微博、QQ空间。

【彭建明专栏】IT运维系列谈(2):切莫忽视数据库的有效备份

专栏 HIT金子 1647浏览 评论

【编者按】IT运维,是信息系统的生命线。离开了运维,信息系统很容易陷入寸步难行、甚至彻底撂挑子的尴尬状况。医院信息部门大部分的工作内容,其实还是IT运维。感谢彭建明主任再次分享自身有惊无险的运维经历,这个小故事证明了“系统运维,数据备份重于天”的至理名言。彭建明主任表示,将继续梳理分享系统运维的真切体会。

来源:HIT专家网    作者:新疆自治区人民医院信息科   彭建明

系统运维,一定要对数据库做有效备份。这是本期文章希望分享的最大感悟。

在信息系统对于业务的支撑日益重要的当下,信息安全的重要性不言而喻,但作为信息安全的重要内容——数据备份的重要性却往往被人们所忽视。只要发生数据传输、数据存储、数据交换、软件、硬盘等任何一个方面的故障,就有可能产生数据丢失。这时,如果没有采取有效的数据备份和数据恢复手段,就会导致数据丢失。选择可靠的备份设备和技术,对任何企业级信息系统的稳定运行都是至关重要的。

自以为”完美“的备份

16年前,我第一次去北京学习Oracle数据库,我们的老师就语重心长地告诉我们:“系统运维,一定要对数据库做有效备份!”我记住了这句话,但一开始却没有重视。原因也许是,十几年前,我年少轻狂;还有一个客观因素,当时市场上也没有特别好的备份软件。偶尔来几个数据库备份软件的推销业务员,对于我关心的问题,他们答非所问,让我对他们的产品一点信心也没有。

于是,我自己做了一些自认为可靠的备份。心里还在想,医院又不用花钱,何乐而不为。对于核心的HIS系统,我利用Oracle Dataguard 做了数据库实时容灾,对于一般的信息系统,我用Oracle做RMAN备份,利用SQL server备份功能做本地备份,再利用脚本定时把备份拷贝到另外一台服务器。我自认为这一方案已经很完美。后来的运维生涯,前十年也相对平安无事。

由一名ICU住院病人对账引发的“数据丢失”

但是,2011年发生的一件事情,让我现在想起来都有后怕的感觉。这次经历,真正验证了“系统运维,备份重于天”的至理名言。

2011年,我们医院有一名市医保的病人,老人80多岁了,在我们医院ICU几乎躺了一年,花费巨大。医保结算时碰到了难题,我们必须把所有费用传到医保,然后医保结算金额和医院病人费用总额对上了,才能结算。财务人员核了一个星期,费用总额总是对不上。结算不成功,财务部寻求我们信息科的帮助解决。当时医保网络很差,医保系统刚换,也在不断完善。医保局告诉我们解决方法是多试几遍,总会成功。这个方法对一般费用少的病人还算是有效,但这名病人却不适用。程序员根据我们商量的要求,定制开发了一个软件功能来结算,首先对病人费用汇总,再上传汇总记录。根据测试,5万多条记录汇总完后不到1000条。软件功能很快就修改完成了。

一个下午,我正在开周会,我们科室人员打来电话,说他们用新程序去住院部对这名病人费用做结算,试了一遍,病人的费用全都不见了。我跑回办公室,进入数据库后台表一看,这个病人一条记录都没有了。进入Dataguard容灾库,情况一样。利用闪回查询,结果数据不完整,费用差了很多。

我向他们仔细询问了当时的结算情况,原来,在结算过程中,软件系统报了个错,再重新结算,病人费用就没了。这应该是PB数据窗的一个bug,造成数据窗所选择的记录全部丢失。更要命的是Dataguard实时容灾库,同步了这个错误。这个事件证明,原有的数据备份机制不堪一击。

山重水复疑无路

病人家属很快找到了我,因为结算员告诉他,只有我能解决他的问题。数据没了,我能做什么?当然,数据丢失的事情,我们暂时没有告诉家属。

我紧急召集公司技术经理开了一个会,这次事故他们有不可推卸的责任,要求他们立即做一个弥补程序,根据医嘱和单据重新生成费用。公司很努力,程序很快做完,运行结果却让我彻底失去了希望,还差很大一笔数字,需要手工去补,这几乎是天方夜谈。至此已经过去三天了,病人家属很有涵养,每天都来我办公室一次,问问情况,说说他们家的困难。

公司是靠不上了,我只有靠自己。

这时,灵光乍现,我想到了以前学习过的 Oracle Logminder 数据库日志挖掘工具。文档上说:日志成功挖掘,数据库有四个必要条件。而我们库只满足两个条件。根据我们工程师提供的时间,我取了30多个归档日志。试到第25个日志时,我几乎丧失信心了,因为一无所获。我心想,再试几个日志看看吧,如果没有数据,我就去向院领导汇报。就在这时,奇迹发生了!后面几个日志,挖掘出来的全部是规范的删除语句,整整齐齐5万多条。我的心当时都要跳出来了!把Delete 改成Insert,重新运行5万多条插入语句,数据得到了恢复,一分钱不差。当时,归档日志我只保留三天,假设再晚一天,真是神仙也救不了,真的好悬!

这件事完了以后,我明白了两个道理:数据库容灾不能代替备份,医院需要一个可靠的备份软件;遇到问题,不轻言放弃,才有可能出现奇迹。

【作者简介】

彭建明:新疆维吾尔自治区人民医院信息中心副主任,18年专注于医院信息化管理建设,一直致力于大型医院核心信息系统安全性、可靠性的研究,拥有丰富的医院信息化建设管理实操经验。曾帮助新疆多家大型三甲医院、多家县级医院和新疆大型企业、政府部门安装Unix或Linux环境下的集群系统和容灾系统,帮助解决系统故障和性能问题。以扎实的技术和认真的工作作风得到了广大同行的认可。通过学习与实践相结合,先后取得了ORACLE 8I OCP 、ORACLE 10G OCP 、IBM AIX小型机管理员证书、CISCO CCNA 网络管理员证书。

【责任编辑:谭啸】

 

您必须 登录 才能发表评论!