医院数据库日常运维该怎么做?

医信局
正常情况下,医院HIS这种OLTP系统数据高速缓冲区的命中率都应该在90%以上。通过定期观察数据高速缓冲区的命中率来判断是否需要调整内存参数,在命中率下降的情况下调大数据高速缓冲区可以提高数据响应速度。但是建议数据库占用内存总和不要超过物理内存的一半。

数据库日常运维工作是指生产系统正式上线运行后,随着数据量和用户数的不断增加,医院信息中心需要投人专业的技术人员按照一定的时间周期来对数据库进行的一系列预防性检查的工作。数据库日常运维工作非常重要,因为除了突发的故障以外,运维期间大部分的问题都会在日常运维中发现。因此,日常运维工作做得好不好,直接关系到数据库是否能稳定运行。

1.png

数据库日常运维频率及内容

通常来讲,数据库运维的频率分为每日维护、每月维护和定期维护。

(一)数据库每日维护内容

数据库运维一般都由专门的DBA来完成,DBA要负责每天对数据库的运行状态进行检查,同时需要和数据库之前的运行状态进行对比,通过对比分析来及时对数据库进行必要的调整,保障数据库运行的稳定。

DBA每天对数据库进行的工作有:确认数据库状态正常,DBA需要登录操作系统或者数据库,确认数据库的运行状态是处于OPEN状态;检查操作系统的文件系统的状态,主机操作系统的文件系统空间或者I/O异常会造成数据库运行异常;检查日志文件记录,数据库的日志文件用来记录数据库在运行过程中重要的状态和错误;检查数据库备份和容灾的状态,需要检查最新的备份工作是否成功完成,及时找出失败的原因并处理;每天至少检查一次容灾系统的运行状态,保证容灾系统工作正常;检查数据库空间使用情况,数据库都是通过数据文件来分配空间的,需要定期检查数据文件是否还有剩余空间来存放数据,及时增加数据文件或者扩展数据文件;监控数据库性能表现,监控主要侧重于数据库的重要性能指标。如实例命中率、SQL执行时间等和昨天的同时间段比较是否有明显变化,如果出现明显性能下降的趋势,如SQL执行时间同比超过50%,则需要启动数据库优化的工作。

(二)数据库每月维护内容

数据库每月的日常运维,主要分析数据库当月的运行趋势和未来的发展趋势,以便DBA及时对数据库进行调整来适应新的运维需求。监控数据库重要表的空间扩展情况,针对数据库中存放数据最多的重要的大数据表,如医嘱明细表、住院明细表等,每月收集最大10个表的占用空间,同比上个月的数据对比得出月数据增长量;检查失效的数据库对象,数据库对象状态失效的原因很多,如存储过程中相关的表改名后,存储过程就变成失效的状态;检查无效的触发器和约束,数据库触发器和约束失效后,数据库和应用系统可能没有马上报错,但是与这些触发器相关的应用数据可能会出现不一致的情况;数据库报错和处理情况进行汇总,每月对当月检查到的错误和排除的过程进行汇总和归档,一方面,以后遇到类似错误可以很快找到解决方案;另一方面,也可以为数据库运行稳定状态提供可靠的数据。

(三)数据库定期维护内容

有一些日常维护的工作,需要定期执行但是执行的频率需要根据数据库运行的实际情况来做弹性的调整,这部分维护工作包括:检查和处理数据表的碎片情况,医院信息系统的数据库是一个典型的OLTP数据库,在数据库日常使用过程中必然会发生很多更新和删除操作,随着时间的推移,数据库中会产生越来越多分隔的、离散的、较小的自由空间,随着数据库碎片数量的增加,会给数据库带来性能低下,空间使用效率不高等问题。因此,根据数据库实际使用情况,需要对重要表进行碎片整理,消除碎片对数据库的影响;定期对索引进行维护和管理,在OLTP的数据中创建索引是为了提高数据检索的速度,特别是创建唯一性的索引。但是数据库的索引并不是越多越好,数据库维护索引的代价很大。定期检查和分析数据库索引的合理性,根据业务需求添加合适的索引,删除无须要的索引也是DBA必不可少的维护工作;定期分析数据库性能表现,数据库的性能表现随着数据量的增加,理论上来说会呈下降趋势,简单来讲就是同一条SQL语句执行时间越来越久。因此,应该定期观察数据库的性能表现,如SQL的执行时间、数据库的繁忙时间、数据库的等待事件等,并和之前的数据库性能进行对比。如果发现性能有明显下降的趋势,需要及时启动数据库优化工作,以免对正常业务运行造成影响。

数据库可用空间运维

一般来说,数据库可用空间包含3个部分:用以存放数据文件的文件系统或磁盘组剩余空间、数据库表空间的剩余空间、数据库系统软件的安装目录剩余空间。

数据库文件包括数据文件、日志文件、控制文件等,这些文件在数据库建立的时候就需要选择操作系统适当的位置来存放,一般存放的位置是文件系统、裸设备或者ASM磁盘组(Oracle独有)。如果这几部分空间不足,短期内不会影响数据库的正常使用,但是如果遇到数据库需要扩展表空间或者增加数据文件,就会面临无空间可用的情况。DBA需要及时扩充对应的存储空间来为数据库的扩充预留空间。

数据库表空间是用来存放数据表的数据空间,如果这部分空间不足,数据库会马上挂起,无法响应大部分的业务操作,特别是数据库特殊的表空间(用于存放元数据)若空间不足则可能引起数据库宕机等更严重的故障。如果一次性地给数据库表空间分配大量空间,则会影响数据库备份等其他维护操作的难度和复杂度。因此,在日常维护中,数据库表空间按足够未来3~6个月使用的原则来分配,随时添加数据文件来保障数据库的正常运行。

数据库软件存放的文件系统一般来说不会有太大的数据增量,其中最多的数据增量来源于数据库的日志文件、错误告警文件等。当数据库出现大量的错误时,会产生大量的错误告警文件,这些文件会把文件系统爆满。如果发生这样的情况,数据库也会无法响应连接请求,应用系统也会出现异常。

数据库内存参数运维

数据库相关配置参数,特别是内存参数,在数据库建立之前就已经根据数据量大小和用户数多少设计好相对优化的数据。在数据库运维过程中,需要观察数据库内存参数是否满足业务需求:无论何种数据库,都需要将经常访问的数据存放在数据高速缓冲区中,利用内存百倍于硬盘的响应速度来提高整个数据库的响应速度,减少I/O等待时间。

正常情况下,医院HIS这种OLTP系统数据高速缓冲区的命中率都应该在90%以上。通过定期观察数据高速缓冲区的命中率来判断是否需要调整内存参数,在命中率下降的情况下调大数据高速缓冲区可以提高数据响应速度。但是建议数据库占用内存总和不要超过物理内存的一半。

THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论