随着不间断关键任务需求的不断增强,数据库管理系统这一核心部件的高可用性越来越受到业界的重视。当前数据冗余和集群设计成为数据库高可用方案的首选,但集群系统的故障切换效率影响了系统的高可用性。因此实现一个具有高故障切换效率的集群系统具有很好的使用价值,本文基于MySQL数据库系统设计实现了事务完整的故障切换模型ProntoPF。
本文详细分析了当前数据库集群采用的两种体系结构(无共享存储体系结构和共享存储体系结构)的特点,无共享结构的故障切换效率和集群可扩展性高,但结构的故障处理能力较弱,共享结构的故障处理能力强,但故障切换效率较低。引进故障预测机制提高故障切换的效率,并对基于预测的故障切换算法的正确性和合理性进行了证明。然后根据故障切换的需要引入了事务ID属性,设计实现了扩展的二进制日志文件中的事件结构:HAlogevent。最后基于故障预测和扩展的事件结构构建故障切换模型ProntoPF,ProntoPF主要由三个模块组成,节点切换模块在预测节点发生故障时召集选举协议,根据事务ID属性选择合适的协调者;事务读写模块引入事务信息表的概念,将系统执行事务的情况记录在事务信息表,根据事务信息表和节点日志文件的事件信息进行比较分析判断节点事务是否丢失;事务分析模块根据节点读写模块执行事务的撤销与重做实现系统事务的完整。
本文在扩展日志的基础上实现了ProntoPF,并根据其体系结构深入分析并实现了三个组成模块,其中应用了ROWA-A策略,心跳检测策略和重做日志策略等多种策略,论文最后对ProntoPF进行了性能评测,并与现有高可用集群进行比较,结果表明模型的故障切换效率和事务完整性功能符合高可用需求。