浅谈如何管理医疗数据库

2015-04-16 05:09李守龙张国娟
江苏卫生事业管理 2015年5期
关键词:磁盘日志备份

李守龙 张国娟 沈 慧

较多中小型医院信息管理部门没有配备专职的数据库管理员(Database Administrator;DBA),数据库的维护基本都是科室人员兼职,对数据库的管理往往只停留在定期数据库备份上。这似乎侥幸于赌软、硬件的可靠性,短期来讲可能没有问题,但长远来看可能不足以应对灾难。数据库的备份很重要,但它仅是数据库管理中的一个部分,笔者认为数据库最基本的管理应该包括权限的管理、数据库错误检查、数据库的备份、数据的转移及关注日志文件变化。

1 权限的管理

医疗行业因其特殊性对权限管理较严格,权限和医生的职务、职称严格匹配,鉴于这方面的要求,HIS都有比较细致的权限管理功能。既然HIS已经划分了权限,似乎没有必要在数据库继续划分。本文将其列为了第一条,似乎有小题大作之嫌。HIS权限的划分使得相应的使用者有匹配的权限,有可追溯的操作行为,数据库权限的划分有其相同的目的。数据库管理中所有用户均使用SA权限(System Admin;SA)登陆的医院比比皆是,这对于医疗数据库极为不可控,也极不安全。SA拥有数据库最大的操作权限,一旦误操作,破坏性可能是“致命”的,且这种操作是具有不可追溯性的。假若1份电子病历已经封存,HIS也已经禁用所有的修改操作,但是此时数据库是可操作的,SA用户可以随时修改数据,且一旦修改根本无法定位究竟是谁做了这个操作;1份收费数据被误操作极可能导致财务数据很大偏差,最终导致和社保端数据不一致而无法结算。根据信息科室人员姓名建立同名用户名,根据职位职能不同划分权限。一般管理人员只给予读权限,兼、专职管理数据库人员给予一定写权限。这样可以在一定程度上提高安全性,并且每个操作人员行为可控、可追溯,更重要的是防止外部人员轻易获取SA权限。

2 数据库错误检查

数据文件的损坏对数据库的运行是一个严重的威胁,轻则无法读取数据,重则导致系统的崩溃。一旦数据库出现错误,切忌带“病”运行。这些“病”往往不是突发,而是日常的累积。通过这几年的数据库管理,我们总结“防病”成本比‘治病’成本要低得多。

针对这类错误的“防”,就是日常的数据库错误检查。对于Sq1 Server类的数据库可以定期运行DBCC CHECKDB等命令进行检查。但CHECK DB比较耗费资源,具体的执行要结合临床业务避开高峰。也可以考虑按时段分组执行CHECKTABLE、CHECKCATALOG、CHECKALLOC等命令,达到同样目的。有条件的医院可以在测试库(恢复业务数据的备份)上进行检查,一旦发现错误,在合适的时间在正式库运行,结合具体错误重见索引、日志;必要时使用REPAIR_REBUILD甚至REPAIR_ALLOW_DATA_LOSS(可能导致数据丢失,慎用)修复。对于比较大型的数据库,一旦发现错误比较严重,最简便的方式是从备份恢复。

3 数据库的备份

HIS层面做再多的安全策略也无法防止一些意外灾难,管理员的误操作、不可抗力等因素都会导致数据的丢失。一旦意外发生不能恢复数据或是短时间无法恢复数据,都会对信息科造成巨大的压力,甚至相关人员会因此丢工作。合适的数据库备份策略对数据保护十分的重要。Sq1 Server中数据备份有很多种方式,常用备份类型有完整备份、差异备份、事务日志备份和文件组备份。一般根据具体业务情况和可以容忍的最大数据丢失程度,使用其中的1~4种方式。中小医院医疗数据库一般程度上都不会十分庞大,可以考虑如下备份方式:每日凌晨进行业务数据库的完整备份;每1小时对事物日志进行1次备份,每日中午12:30对数据库执行差异备份;每周对Master数据进行1次备份,最好可以在合适的时间对物理文件进行备份。Master的备份比较容易被忽略,它记录系统级信息如登陆名、统配置设置等信息,如果Master数据库有问题,整个数据库系统都将无法启动,因此笔者十分强调备份。

数据库备份的结束并不意味备份的动作已经完成,最好的方式还要验证备份本身的有效性和模拟突发情况验证备份策略及还原策略是否合适,然后根据模拟情况调整备份和还原策略。

4 数据的转移

数据库设置了十分完美的备份策略,可以保证一旦故障发生,可以在短时间内恢复正常业务,这样岂不是很完美?非也,那要看你的备份是不是只存放在一个地点。现在的服务器都有磁盘阵列(RAID),可靠性比较高,但是不等于100%安全,一旦出现不可抗力及磁盘阵列不可修复的问题,无法获得数据源,再健全的管理机制和再完美的备份策略都是枉然。做管理不能太迷信于技术,有时简单的动作可以起到“救命”的作用。如果不能保证数据源介质百分之百的安全,那就必须定期进行数据备份和数据库物理文件的转移。数据就是“生命”,对待“生命”不能太随意,对转移的数据应该有严格的管理。建议对光盘介质进行封存,磁盘介质专盘专用,并且这些介质的启用需要登记、审批。

5 关注日志文件 注意磁盘空间

Sq1 Server会为所有的修改记录日志,以便将来重新提交或者回滚时使用,但Sq1 Server制定了机制,日志文件不会无休的增长,会定期清理日志中不需要的内容[1]。但是也不意味着我们不需要关注日志,在特定的条件下数据库日志文件会突然增长迅速,甚至变得非常巨大乃至占满整个磁盘空间。日常维护中需要时不时地关注日志文件的变化,一旦发现异常就要定位原因,是数据库没有做日志备份、是数据库中有事务很长时间没有提交、还是数据库正在运行一个较大的事务,须根据不同的情况进行针对性处理,以保持事物日志合理增长。

上述日志文件的增长也提醒我们要关注磁盘的动态,一旦磁盘剩余空间较小很可能影响Sq1 Server向磁盘文件读写量,甚至无法存取,也就意味着前端系统的瘫痪。如果是正常的磁盘耗尽,在剩余一定量前尝试收缩数据库并提前布置磁盘空间扩展,这样可以在一定程度上防止意外的发生。

6 小结

现代服务器的软硬件安全性都比较高,数据库的管理短期可能显现不出其优势,这也是为什么中小型医院不重视的原因。数据库管理的好处不仅仅能在紧急情况中挽留数据,更多的是它可以有效减少HIS层面的故障,即使有数据库层面发生问题,也可以在短时间内得到恢复,最坏的情况也只是丢失部分数据。

数据库管理涵盖非常多的内容,没有办法用有限的篇幅和大家一起探讨更多,这里仅提供一些建议,更多的要靠实践中的亲身体验和经验的积累。

1 徐海蔚.Microsoft SQL Server企业级平台管理实践[M].北京:电子工业出版社,2010:33-34.

猜你喜欢
磁盘日志备份
“备份”25年:邓清明圆梦
一名老党员的工作日志
扶贫日志
创建vSphere 备份任务
解决Windows磁盘签名冲突
修改磁盘属性
游学日志
磁盘组群组及iSCSI Target设置
创建VSAN群集
旧瓶装新酒天宫二号从备份变实验室