[发明专利]一种用于实现数据库高可用性的方法及装置有效
申请号: | 201711239837.1 | 申请日: | 2017-11-30 |
公开(公告)号: | CN109857523B | 公开(公告)日: | 2023-05-09 |
发明(设计)人: | 张广舟;林晓斌;范孝剑;窦贤明;曾文旌;周正中;熊亮春;张文杰 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 北京清源汇知识产权代理事务所(特殊普通合伙) 11644 | 代理人: | 冯德魁;窦晓慧 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 实现 数据库 可用性 方法 装置 | ||
1.一种用于实现数据库高可用性的方法,其特征在于,包括:
主数据库服务器并发向复数个从数据库服务器发送已生成的日志;
在所述主数据库服务器完成事务提交之前,判断完成所述事务提交前已生成的日志是否全部已被接收;
若是,所述主数据库服务器完成所述事务提交;
其中,所述主数据库服务器并发向复数个从数据库服务器发送已生成的日志,包括:
所述主数据库服务器通过并发日志发送进程或线程并发向复数个从数据库服务器发送已生成的日志;
所述判断完成所述事务提交前已生成的日志是否全部已被接收,具体为:
将所述并发日志发送进程或线程发送成功的日志集合做并集;判断所述并集是否包含所述事务的最后一条日志及所有前置日志判断所述事务的最后一条日志及所有前置日志是否全部发送到所述复数个从数据库服务器;
或,所述判断完成所述事务提交前已生成的日志是否全部已被接收,具体为:
判断所述事务的最后一条日志及所有前置日志是否全部发送到所述复数个从数据库服务器。
2.根据权利要求1所述的方法,其特征在于,所述主数据库服务器通过并发日志发送进程或线程并发向复数个从数据库服务器发送已生成的日志,包括:
所述主数据库服务器通过并发日志发送进程或线程以条数为单位并发向复数个从数据库服务器发送已生成的日志;或者
所述主数据库服务器通过并发日志发送进程或线程以字节为单位并发向复数个从数据库服务器发送已生成的日志。
3.根据权利要求1所述的方法,其特征在于,主数据库服务器并发向复数个从数据库服务器发送已生成的日志,包括:
主数据库服务器通过两个线程并发向复数个从数据库服务器发送新生成的日志,其中一个线程发送奇数日志,另一个线程发送偶数日志。
4.根据权利要求1-3任一所述的方法,其特征在于,所述主数据库服务器并发向复数个从数据库服务器发送已生成的日志,包括:
为每条已生成的日志设置一个状态参数,当一条日志被成功发送到一个从数据库服务器后,则增加此条日志对应的状态参数值。
5.根据权利要求1所述的方法,其特征在于,所述判断所述事务的最后一条日志及所有前置日志是否全部发送到所述复数个从数据库服务器,包括:
判断所述事务的最后一条日志以及所有前置日志对应的状态参数值是否大于预设值;
若是,判断为所述事务的最后一条日志及所有前置日志全部发送到所述复数个从数据库服务器。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当主数据库服务器无法提供服务时,选取所述复数个从数据库服务器中的一个从数据库服务器作为新的主数据库服务器;
判断所述新的主数据库服务器是否包含所有已生成的日志;若否,所述新的主数据库服务器向其余从数据库服务器请求缺失日志;
若是,进行主数据库服务器与作为新的主数据库服务器的从数据库服务器的更替。
7.根据权利要求6所述的方法,其特征在于,所述选取所述从数据库服务器中的一个从数据库服务器作为新的主数据库服务器,包括:
选取包含日志号最新的日志的从数据库服务器作为新的主数据库服务器。
8.根据权利要求6所述的方法,其特征在于,所述进行主数据库服务器与作为新的主数据库服务器的从数据库服务器的更替,包括:
作为新的主数据库服务器的从数据库服务器进行日志回放;
将新的主数据库服务器设置为主数据库服务器。
9.一种用于实现数据库高可用性的装置,其特征在于,包括:
发送单元,用于主数据库服务器并发向复数个从数据库服务器发送已生成的日志;
判断单元,用于在所述主数据库服务器完成事务提交之前,判断完成所述事务提交前已生成的日志是否全部已被接收;
提交单元,用于当判断单元的输出为是时,若是,所述主数据库服务器完成所述事务提交;
其中,所述主数据库服务器并发向复数个从数据库服务器发送已生成的日志,包括:
所述主数据库服务器通过并发日志发送进程或线程并发向复数个从数据库服务器发送已生成的日志;
所述判断完成所述事务提交前已生成的日志是否全部已被接收,具体为:
将所述并发日志发送进程或线程发送成功的日志集合做并集;
判断所述并集是否包含所述事务的最后一条日志及所有前置日志判断所述事务的最后一条日志及所有前置日志是否全部发送到所述复数个从数据库服务器;
或,所述判断完成所述事务提交前已生成的日志是否全部已被接收,具体为:
判断所述事务的最后一条日志及所有前置日志是否全部发送到所述复数个从数据库服务器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711239837.1/1.html,转载请声明来源钻瓜专利网。