麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
1096
2023-06-09
本文讲述了数据库三种故障及其恢复手段,医院数据库系统出现故障问题应该如何解决?
三种故障:
1.事务故障:事务内部的故障,主要有可预期和不可预期的解决办法:可预期的用户会在写应用程序的时候用i 语句避免,不可预期的系统自动根据日志文件对事务进行撤销和重做。
2.系统故障:由于各种原因导致系统停止运行,使得缓冲区里的数据没写进磁盘造成的故障,对数据库无损害.基本解决方法:
(1)正向扫描日志文件找到已提交的事务和 未提交的事务
(2) 已提交的加入redo 队列Q,未提交的加入undo队列
(3)反向扫描日志文件对undo队列里所有事务执行逆操作,正向扫描日志文件对redo队列里的所有事务重做
检查点法:
(注: 建立检查点时会强制把此时缓冲区的数据写入磁盘
(1) 在日志文件里找发生故障前的最后的一个检查点
(2)把这个检查点记录里的所有正在运行的事务加入undo队列。
(3)从检查点开始正向扫描日志文件遇到一个事务的开始就把这个事务加入undo队列,遇到一个事务的结束就把这个事务从undo队列加到redo队列。
(4)对undo队列里事务执行撤销,对redo队列里的事务实行重做
3.个质故障:硬件故障造成的数据库损坏,数据丢失
解决办法: 重装副本,再根据日志文件把已完成的事务redo。
数据库系统是位于操作系统和应用业务系统之间,处于承上启下的位置,和信息系统其他设备的故障处理相比,分析和定位难度更大。因此当出现数据库系统的故障时,首先进行故障类型的识别和分析,才能在处理故障时对症下药。
故障处理流程
数据库系统故障的处理,需要在医院信息部门建立切实可行的故障处理流程。故障处理流程要充分考虑到医院信息化的实际情况和信息部门的人力资源,做到早发现,早定位和早处理,而且要提高处理的准确性,同时还需要积累宝贵的故障处理经验在医院信息部门内相互学习和借鉴。部分医院的数据库系统采用第三方协助运维的方式,有助于提高处理故障的技术水平,那么第三方公司的服务能力的考核就非常关键,服务响应速度和处理速度是考核选择的关键指标。
创建数据库系统的故障处理流程首先要建立故障处理联系人列表,包括医院信息部门的所有人员清单、移动联系方式及电子邮箱或者即时通讯号码,并且明确个人职责。联系人列表最好还要包括第三方运维公司的相关责任工程师和原厂的报障热线。
(一)故障记录
信息系统无论发生任何故障,记录工作都是第一步而且是极为关键的,它为之后的分析、处理和统计过程提供可追溯的依据。在记录数据库系统的故障信息时,最关键的是要记录故障报告人和部门、错误的代码、错误发生的时间,系统对口人及影响的范围。可以使用专业的服务台软件进行故障记录,如果条件不具备也可以使用电子文档进行记录。
(二)故障定位
在进行故障的记录以后,下一步就是故障的初步定位。故障的初步定位通常情况下是由医院信息科人员在接到报障时就进行判断,故障定位的准确性取决于医院信息系统故障知识库的完备性和受理故障人员的知识和经验的储备。随着医院信息化系统的规模越来越大,合理明确的人员分工及精细的流程管理就势在必行,甚至考虑使用部分外包的方式来提高数据库系统故障处理的技术专业性和故障处理成功率。
(三)故障处理
当完成故障的初步定位,下一步就进入到故障的处理阶段。故障处理阶段由医院信息科及相关厂家工程师和原厂工程师进行处理,根据故障的难易程度决定采用的处理方式。处理故障时通常采用分级别处理,由医院信息科技术人员先对故障进行处理,如果在规定时间内处理不好再交由本地的厂家工程师进行处理,如果有必要还可以上升到原厂工程师处理,这样的分级处理虽然会延长故障处理的时间,但对于均衡成本是最有效的方式。
系统管理员检查数据服务器上的硬件故障system administrator examine
故障处理注意问题
对于医院核心的数据库系统故障,因为影响面较大、处理的及时性强且需要的知识比较专业,可以考虑采用维护服务外包并且故障问题直接交由运维厂家工程师进行处理。医院信息科相关人员在处理数据库系统故障时需要重点关注的几个问题如下:
(一)检测数据库可连接性
检测数据库的可连接性是判断数据库故障的第一步,可以通过客户端配置指向数据库系统的连接字串,然后测试是否可以登录数据库。可包括使用客户端工具、应用软件及ODBC、JDBC等。通常70%的数据库系统故障并不影响全部的业务,大多数的问题可能都是由于客户端的个别问题造成,如客户端版本不符合,病毒,网络设置,误操作等。多数情况下重启客户端工作站就能解决问题。
(二)检测数据库服务器运行
当出现大量的客户端不能连接到数据库时,就有必要连接到数据库服务器上检测数据库软件的运行情况。首先需要检查数据库是否仍是启动状态,判断数据库是否已经宕机。如果数据库出现宕机,需要检查数据库的日志及操作系统日志,根据关键性错误日志信息判断是由于什么样的问题造成故障,常见的有存储访问故障,板卡故障,网络通讯故障,磁盘损坏等。如果数据库是运行正常的,也没有明显的关键性错误信息。这时需要关注数据库服务器上的资源使用情况,如CPU使用率,内存使用率和I/O繁忙程度,是否是由于性能遭遇瓶颈导致无法连接。这时需要通过重启数据库和服务器来恢复业务运行。如果没有发现故障原因所在,可能需要具备专业经验的工程师进行处理,通过联系数据库维护工程师或者数据库代维工程师进行问题分析和处理。
(三)容灾系统的启用
当出现严重的数据库系统不可用故障时,容灾和备份系统的完备性和可用性就非常重要。对于医院的数据库系统,连续性要求较高,当严重的生产数据库不可用故障不能在规定的时间内完成处理时,启用容灾系统是最终的方案。
数据库系统故障预防措施
减少故障率的最好办法当然是提前做好防范措施。对于连续性要求很高的医院数据库系统,做好故障的预防格外重要,预防措施通常在设计一个医院数据库系统时就需要考虑。一般情况下可以通过以下几个角度进行故障的预防。
(一)预防单点故障
故障的发生是概率性事件,那么通过冗余来减小故障带来的停机时间,这是IT领域最常用的预防故障的手段。如存储系统通过建立磁盘的RAID冗余来保障数据的安全,服务器通过集群系统来保障节点的高可用性,网络交换机通过互备来保障网络可用性,网卡通过绑定来保障链路的可用性等。这些冗余措施能够很好地预防单点故障,在数据库级别也有数据库的冗余机制,如数据库集群,日志文件冗余和数据文件冗余等。设备冗余的预防措施会成倍增加IT建设成本,需要决策者进行权衡。
(二)完善的灾备机制
对于数据库系统来说,完善的容灾和备份机制能够应对严重的故障和保障数据的安全。
(三)故障处理知识库的建立
就医院信息化数据库系统来说,可以使用数据库厂家提供的故障处理知识库。在此基础之上,对于医院在自身数据库系统运维过程中积累得到的经验也是非常宝贵的资产,这些运维经验如果可以记录进知识库中,对于数据库系统的故障处理工作将是极大的帮助。如果有条件,可以使用专业的IT知识库软件进行记录。在不具备条件的情况下,可以采用电子文档进行记录和归档。
(四)建立监控和预警系统
通常情况下,数据库系统的故障是可监控的。建立一个完善的监控和预警系统,能够尽早的发现数据库系统的故障隐患,帮助医院信息科人员在故障还没有产生大的影响前就可以有充分的时间进行处理。监控系统通常会关注数据库的空间使用率,日志中的报错信息,操作系统的资源使用情况,达到用户设置的报警阈值和遇到定义的错误关键字,就通过手机短信,报警灯,声音等方式发出通知。
上文就是小编为大家整理的数据库三种故障及其恢复手段,医院数据库系统出现故障问题应该如何解决?
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。