全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210421010.7 (22)申请日 2022.04.21 (71)申请人 浪潮云信息技 术股份公司 地址 250100 山东省济南市高新区浪潮路 1036号浪潮科技园S01号楼 (72)发明人 李建伟 杨镇铭 田昌英 安晓博  (74)专利代理 机构 济南信达专利事务所有限公 司 37100 专利代理师 孙园园 (51)Int.Cl. G06F 11/14(2006.01) G06F 16/23(2019.01) G06F 16/25(2019.01) G06F 16/27(2019.01) G06F 16/28(2019.01)G06F 21/44(2013.01) G06F 21/62(2013.01) (54)发明名称 mysql主备模式下应用层容 错方法及系统 (57)摘要 本发明公开了mysql主备模式下应用层容错 方法及系统, 属于数据库容灾技术领域, 本发明 要解决的技术问题为mysql主备同步机制可能导 致的数据不一致, 采用的技术方案为: 该方法具 体如下: 部署应用层数据库; 部署未同步数据访 问控制系统数据库表; 应用层登录未同步数据访 问控制系统; 应用层写业务表。 该系统包括部署 模块一、 部署模块二、 登录模块及写模块, 用于应 用层写业 务表。 权利要求书3页 说明书7页 附图1页 CN 114816851 A 2022.07.29 CN 114816851 A 1.一种mysql主备模式下应用层容 错方法, 其特 征在于, 该 方法具体如下: 部署应用层数据库; 部署未同步数据访问控制系统数据库表; 应用层登录未同步数据访问控制系统; 应用层写业 务表。 2.根据权利要求1所述的mysql主备模式下应用层容错方法, 其特征在于, 部署应用层 数据库具体如下: 开启mysql主备异步复制模式; 在业务表增加预写版本号字段, 该预写版本号用于写入未同步数据库访问控制系统返 回值。 3.根据权利要求2所述的mysql主备模式下应用层容错方法, 其特征在于, 未同步数据 访问控制系统数据库表的字段包括业务ID、 数据库ID、 业务表名、 主键列名、 主键值及预写 版本号; 其中, 业务ID用于给业 务层分配的ID, 区分不同业 务; 数据库ID是指业务数据库ID, 在应用层登录时, 把业务数据库部署信息注册到未同步 数据库访问控制系统; 未同步数据访问控制系统数据库表的预写版本号用于核对业务备库里该未同步记录 是否已同步。 4.根据权利要求1所述的mysql主备模式下应用层容错方法, 其特征在于, 应用层登录 未同步数据访问控制系统具体如下: 应用层向未同步数据库访问控制系统发送登录请求; 其中, 应用层请求的内容包括用户名、 登录时间戳、 主库 ID和/或主库连接信息、 备库ID 和/或连接信息列表以及摘要信息; 未同步数据库访问控制系统响应的内容包括返回码、 业务ID以及Token; 业务ID表示唯 一标识该用户; 未同步数据库访问控制系统响应的Token表 示(用户名|登录时间戳|主库ID |备库ID列表|业 务ID)签名; 登录鉴权: 未同步数据库访 问控制系统通过本地数据库中该用户对应的密码, 使用该 用户对应的密码对请求消息进 行加密, 获得摘要信息, 与请求里的摘要信息进 行比对, 判断 是否相同: 若相同, 则鉴权通过。 5.根据权利要求1所述的mysql主备模式下应用层容错方法, 其特征在于, 应用层写业 务表具体如下: 预先请求未同步数据访问控制系统, 查看是否允许写入; 请求方收到允许写入响应消息后, 应用层请求写业务数据库并把返回的预写版本号更 新到业务表; 写入操作包括该记录的预写版本号会被同步到各个备库; 未同步数据访问控制系统根据预写版本号周期核对该写入操作是否已同步到各个备 库; 根据登录信息中的各个数据库节点连接信息, 去对应的备库查询该条记录预写版本权 利 要 求 书 1/3 页 2 CN 114816851 A 2号, 与本地预写版本号进行对比, 判断预写版本号是否相同: 若相同, 则从未同步数据访问控制系统数据库表擦除对应的记录; 当mysql单点故障并发生主备切换时, 应用层需要重新登录, 并携带最新的主备数据库 信息; 并且 预写请求中需要携带最新的Header信息, 同时根据是否允许写入判断逻辑, 会自 动启用该新主库的访问控制表, 进行写入访问控制; 当mysql故障恢复后, 根据各个备库的未同步数据访问控制系统数据库表, 从故障节点 恢复数据。 6.根据权利要求5所述的mysql主备模式下应用层容错方法, 其特征在于, 是否允许写 入判断如下: 通过Header中业务ID、 主库ID信息以及请求参数, 查询未同步数据访问控制系统数据 库表是否为空: 若查询到结果不为空, 则表示未同步数据访问控制系统数据库表的这条记录上次的写 操作还未同步到 本节点, 本次不允许写入, 并向应用层返回不允许写入; 若否, 则生成预写版本号,并根据请求消息体中的业务表名、 主键列名、 主键值、 Header 中业务ID、 业务备库ID列表和预写版本号向未同步数据访问控制系统数据库表插入记录; 再给请求方返回允许写入响应消息; 其中, 请求方请求的内容包括Header{用户名|登录时间戳|主库ID|备库ID列表|业务 ID+登录token}、 业务表名、 主键列表、 主键值以及业务回调数据; 登录token是在登录时由 未同步数据访问控制系统下发; 未同步数据访问控制系统根据Header 中的信息校验token 是否合法: 若不合法, 则忽略该请求; 请求方请求的业务回调数据是 由请求方填写, 用于唯 一标识该请求, 方便返回后触发对应的逻辑; 请求方响应的内容包括是否允许写入、 预写版本号以及业务回调数据; 请求方响应的 预写版本号是 由未同步数据访问控制系统生成, 用于标识该条业务数据的写版本; 请求方 响应的业 务回调数据用于 透传字段, 由请求端填写。 7.根据权利要求1所述的mysql主备模式下应用层容错方法, 其特征在于, 未同步数据 库访问控制系统的节点部署具体如下: 未同步数据访 问控制系统采用主备多节点部署, 主备多节点连接同一个数据库, 正常 情况下仅有主节点提供服务; 当主节点故障时, 屏蔽主节点, 备用节点升级为主节点, 从数据库拉取全量未同步列表 至缓存后, 开始提供服 务; 当数据库节点故障时, 写操作降级为预写日志加写缓存, 等数据库节点 回复后, 将全量 缓存刷入数据库节点。 8.一种mysql主备模式下应用层容 错系统, 其特 征在于, 该系统包括, 部署模块 一, 用于部署应用层数据库; 部署模块 二, 用于部署未同步数据访问控制系统数据库表; 登录模块, 用于应用层登录未同步数据访问控制系统; 写模块, 用于应用层写业 务表。 9.一种电子设备, 其特 征在于, 包括: 存 储器和至少一个处 理器; 其中, 所述存 储器上存 储有计算机程序;权 利 要 求 书 2/3 页 3 CN 114816851 A 3

PDF文档 专利 mysql主备模式下应用层容错方法及系统

文档预览
中文文档 12 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共12页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 mysql主备模式下应用层容错方法及系统 第 1 页 专利 mysql主备模式下应用层容错方法及系统 第 2 页 专利 mysql主备模式下应用层容错方法及系统 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-07 12:39:33上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。