高可用数据库系统的实现方法及相关设备技术方案

技术编号:29673251 阅读:62 留言:0更新日期:2021-08-13 21:55
本发明专利技术涉及数据库技术领域,公开了一种高可用数据库系统的实现方法及相关设备。所述方法包括:实时检测所述计算节点运行过程中是否发生故障;当所述计算节点运行过程中发生故障时,从所述云主机资源池中选取一个云主机作为新计算节点;将所述分布式存储挂载至所述新计算节点,并在所述新计算节点启动新的数据库实例;对所述数据库实例执行快速崩溃恢复操作,并在执行快速崩溃恢复操作时,采用所述新计算节点对外提供数据库服务。本发明专利技术实现一种单机高可用数据库系统,无需采用主备架构,进而降低了数据库的运营成本。

【技术实现步骤摘要】
高可用数据库系统的实现方法及相关设备
本专利技术涉及数据库
,尤其涉及一种高可用数据库系统的实现方法及相关设备。
技术介绍
数据库系统所处的整个软硬件栈中,硬件和软件都有可能发生故障;如果是单机数据库系统,系统故障需要较长的处理时间,从而造成数据库服务较长时间的不可用。因而单机数据库系统满足不了企业级数据库的应用需求。高可用数据库系统是目前市面上企业级数据库的主流解决方案之一,它的工作原理是通过冗余的数据库节点和自动容灾机制,实现对数据库故障的自动处理和快速恢复,即使数据库系统中的某个节点出现问题导致不可用以后,数据库系统依然能够作为整体对外正常提供数据库服务。近几年来,在云计算平台上,计算和存储分离技术的出现,促使计算层和存储层解耦,实现了计算资源和存储资源的池化,从而进一步增强了云资源的弹性和容灾能力。比如,现阶段实现了计算和存储分离的云主机产品,可以将之前需持久化到本地硬盘的数据,持久化到远端高性能云盘,从而让云主机成为一个无状态的计算节点(只有CPU和内存)。在这种计算和存储分离架构下,云主机的容灾能力有大幅提升。本文档来自技高网...

【技术保护点】
1.一种高可用数据库系统的实现方法,其特征在于,所述高可用数据库系统包括一个计算节点、一个分布式存储以及还包括至少一个云主机资源池,所述云主机资源池包括多个云主机,每个所述云主机的物理配置规格与所述计算节点相同,所述高可用数据库系统的实现方法包括:/n实时检测所述计算节点运行过程中是否发生故障;/n当所述计算节点运行过程中发生故障时,从所述云主机资源池中选取一个云主机作为新计算节点;/n将所述分布式存储挂载至所述新计算节点,并在所述新计算节点启动新的数据库实例;/n对所述数据库实例执行快速崩溃恢复操作,并在执行所述快速崩溃恢复操作时,采用所述新计算节点对外提供数据库服务。/n

【技术特征摘要】
1.一种高可用数据库系统的实现方法,其特征在于,所述高可用数据库系统包括一个计算节点、一个分布式存储以及还包括至少一个云主机资源池,所述云主机资源池包括多个云主机,每个所述云主机的物理配置规格与所述计算节点相同,所述高可用数据库系统的实现方法包括:
实时检测所述计算节点运行过程中是否发生故障;
当所述计算节点运行过程中发生故障时,从所述云主机资源池中选取一个云主机作为新计算节点;
将所述分布式存储挂载至所述新计算节点,并在所述新计算节点启动新的数据库实例;
对所述数据库实例执行快速崩溃恢复操作,并在执行所述快速崩溃恢复操作时,采用所述新计算节点对外提供数据库服务。


2.根据权利要求1所述的高可用数据库系统的实现方法,其特征在于,所述对所述数据库实例执行快速崩溃恢复操作包括:
从所述分布式存储的重做日志文件中加载未被应用的重做日志,并对所述未被应用的重做日志进行解析,将解析结果存入预置哈希表中;
从所述分布式存储中读取预置必要数据对应的物理页至所述新计算节点的内存中进行版本更新,并将版本更新后的所述物理页写入所述分布式存储中,其中,所述必要数据包括:数据字典元数据、最大事务ID、全局唯一ID;
根据更新后的所述物理页和所述物理页中更新后的回滚日志,以DDL操作为单位,对所述必要数据进行版本恢复,以使所述必要数据的版本与所述计算节点发生故障时保持一致,其中,当所述必要数据进行版本恢复后,所述高可用数据库系统对外提供服务;
根据更新后的所述物理页和所述物理页中更新后的回滚日志,以事务为单位,对所述高可用数据库系统的表记录进行版本恢复,以使所述表记录的版本与所述计算节点发生故障时保持一致。


3.根据权利要求1或2所述的高可用数据库系统的实现方法,其特征在于,所述在执行所述快速崩溃恢复操作时,采用所述新计算节点对外提供数据库服务包括:
在执行所述快速崩溃恢复操作时,通过所述新计算节点所在的SQL引擎接收外部客户端发送的数据库服务请求,并确定所述数据库服务请求需要处理的目标表记录以及包含所述目标表记录的目标物理页;
通过所述SQL引擎向表记录引擎发起所述目标表记录的第一获取请求,通过所述表记录引擎向物理页引擎发起包含所述目标表记录的目标物理页的第二获取请求;
若所述物理页引擎的物理页缓存池中不存在所述目标物理页,则通过所述物理页引擎向所述分布式存储发起所述目标物理页的第三获取请求;
当所述分布式存储响应所述第三获取请求并返回所述目标物理页时,截留所述目标物理页进行版本更新,并将版本更新后的所述目标物理页存入所述物理页缓存池中;
通过所述物理页引擎从所述物理页缓存池中读取所述目标物理页并返回至所述表记录引擎,以响应所述第二获取请求;
通过所述表记录引擎判断所述目标物理页中需要读取的目标表记录是否存在未处理的挂起事务;
若不存在未处理的挂起事务,则通过所述表记录引擎将所述目标表记录返回所述SQL引擎,以响应所述第一获取请求;若存在未处理的挂起事务,则加载对应的回滚日志,并利用加载的回滚日志将未处理的挂起事务进行回滚或提交处理后,通过所述表记录引擎将所述目标表记录返回所述SQL引擎,以响应所述第一获取请求;
基于所述目...

【专利技术属性】
技术研发人员:刘坚君丁鹏朱德润罗唐宋志强丁顺彭晶鑫吴斌炜
申请(专利权)人:优刻得科技股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1