【技术实现步骤摘要】
PostgreSQL数据库的服务状态确定系统和方法
[0001]本专利技术涉及数据库
,尤其涉及PostgreSQL数据库的服务状态确定系统和方法。
技术介绍
[0002]PostgreSQL数据库是开源的关系型数据库,满足关系型数据库的ACID要求,同时功能全面、强大,可满足多种生产环境的需求,支持二次开发,市场占有率高。但是在系统高可用方面,官方并没有提供现成的解决方案,市场上高可用的方案,大多数由第三方提供。
[0003]生产环境中常见的高可用系统有以下几种:
[0004]基于主备用服务器共享存储设备的双机热备技术,该方案使用共享存储设备作为数据统一的存储后端,共享存储通常使用磁盘阵列或存储区域网SAN,把共享存储设备通过双机软件同时挂载到主备服务器,但是任意时刻只有一个服务器可以得到对共享存储设备的读写权,业务数据实际只保存一份。在平时工作状态,主服务器处于工作状态(即Active状态),备服务器处于监控准备状态(即Standby状态),两台服务器提供一个VIP给外部应用访问。在主服务器由于某种原因出现故障时,通过软件或手动方式将备服务器激活,同时让备服务器获得对共享存储的读写权限,保证系统在短时间内恢复正常。从而达到系统高可用的目标。
[0005]基于日志的主备数据库复制技术,该方案是比较经典的主从方案,主数据库和备数据库各自独立存储一份业务数据在本地。在主库和备库之间采用传输日志的方式实现数据同步。当主库有数据变更时,在主库的数据提交后,会把相对应的变更日志发送给备库,备库根 ...
【技术保护点】
【技术特征摘要】
1.一种PostgreSQL数据库的服务状态确定系统,其特征在于,所述系统包括:第一设备和第二设备,其中所述第一设备和所述第二设备均部署有PostgreSQL数据库;所述第一设备,用于获取预先保存的所述第二设备的目标IP地址,向所述目标IP地址发送ping数据包,若接收到所述目标IP地址返回的第一响应信息,则向所述目标IP地址发送预先定义可执行的结构化查询语言SQL语句,若接收到所述目标IP地址返回的无法执行的第二响应信息,则确定所述第二设备中部署的PostgreSQL数据库处于假死状态;所述第二设备,用于接收所述第一设备发送的所述ping数据包,并向所述第一设备发送所述第一响应信息,接收所述第一设备发送的所述SQL语句,若无法执行所述SQL语句则将所述第二响应信息发送给所述第一设备。2.根据权利要求1所述的系统,其特征在于,所述第一设备,还用于若在第一设定时长内未接收到所述目标IP地址返回的所述第一响应信息,则确定所述第二设备网络异常导致所述第二设备中部署的PostgreSQL数据库处于异常状态。3.根据权利要求1所述的系统,其特征在于,所述第二设备,还用于若所述SQL语句执行成功,则向所述第一设备发送执行成功的第三响应信息;所述第一设备,还用于若接收到所述目标IP地址返回的所述第三响应信息,则确定所述第二设备中部署的PostgreSQL数据库处于正常服务状态。4.根据权利要求2所述的系统,其特征在于,所述第一设备,还用于获取自身当前的角色,若自身当前的角色为主节点角色,若在第二设定时长内所述第二设备中部署的PostgreSQL数据库连续处于非正常服务状态的次数大于第一预设次数阈值,则控制所述第二设备中部署的PostgreSQL数据库进行异常恢复,其中所述非正常服务状态包括所述假死状态和所述异常状态。5.根据权利要求4所述的系统,其特征在于,所述第一设备,具体用于向所述目标IP地址发送增量恢复指令;若接收到所述目标IP地址返回的增量恢复成功的第一反馈信息,则确定所述第二设备异常恢复成功;若接收到所述目标IP地址返回的增量恢复失败的第二反馈信息,则向所述目标IP地址发送全量恢复指令;若接收到所述目标IP地址返回的全量恢复成功的第三反馈信息,则确定所述第二设备异常恢复成功;若接收到全量恢复失败的第四反馈信息,则确定所述第二设备异常恢复失败;所述第二设备,还用于接收所述增量恢复指令并进行增量恢复,若增量恢复成功则将所述第一反馈信息发送给所述第一设备,若增量恢复失败则将所述第二反馈信息发送给所述第一设备;接收所述全量恢复指令并进行全量恢复,若全量恢复成功则将所述第三反馈信息发送给所述第一设备,若全量恢复失败则将所述第四反馈信息发送给所述第一设备。6.根据权利要求2所述的系统,其特征在于,所述第一设备,还用于获取自身当前的角色,若自身当前的角色为从节点角色,若在第三设定时长内所述第二设备中部署的PostgreSQL数据库连续处于非正常服务状态的次数大于第二预设次数阈值,则将所述自身当前的角色切换为主节点角色,其中所述非正常服务状态包括所述假死状态和所述异常状态。7.根据权利要求6所述的系统,其特征在于,所述第一设备,还用于若在所述第三设定时长内所述第二设备中部署的PostgreSQL数据库连续处于所述异常状态的次数大于所述第二预设次数阈值,则向所述目标IP地址发送所述ping数据包,若在所述第一设定时长内
接收到所述目标IP地址返回的所述第一响应信息,确定所述第二设备网络恢复并进行双主恢复。8.根据权利要求7所述的系统,其特征在于,所述第一设备和所述第二设备中的任一设备,用于将自身的PostgreSQL数据库中的第一数据量、第一启动时间和第一IP地址发送给另一设备,并接收另一设备发送的PostgreSQL数据库中的第二数据量、第二启动时间和第二IP地址,若所述第一数据量大于所述第二数据量,则确定自身对应的角色为主节点角色,另一设备对应的角色为从节点角色;若所述第一数据量等于所述第二数据量、且所述第一启动时间早于所述第二启动时间,则确定自身对应的角色为主节点角色,另一设备对应的角色为从节点角色;若所述第一数据量等于所述第二数据量、所述第一启动时间等于所述第二启动时间、且所述第一IP地址小于所述第二IP地址,则确定自身对应的角色为主节点角色,另一设备对应的角色为从节点角色。9.一种PostgreSQL数据库的服务状态确定方法,其特征在于,所述方法包括:获取预先保存的所述第二设备的目标IP地址;向所述目标IP地址发送ping数据包,若接收到所...
【专利技术属性】
技术研发人员:江惠中,陈王鑫,
申请(专利权)人:浙江大华技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。