[发明专利]数据库路由装置和方法有效
申请号: | 201410771754.7 | 申请日: | 2014-12-12 |
公开(公告)号: | CN104408174B | 公开(公告)日: | 2018-06-19 |
发明(设计)人: | 卢相宁;杨鹏 | 申请(专利权)人: | 用友网络科技股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京中恒高博知识产权代理有限公司 11249 | 代理人: | 姜万林 |
地址: | 100094 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 路由 对象类型 路由规则 元数据 查询语句 路由装置 面向对象类 数据库集群 数据库节点 语言数据库 备份机器 更新操作 管理单元 监测单元 路由单元 路由方式 宕机 监控 通用 更新 管理 恢复 统一 | ||
1.一种数据库路由装置,其特征在于,包括:
数据库路由规则管理单元,用于对数据库路由规则进行管理,包括数据库资源管理、分表规则管理与分库规则管理;
数据库路由单元,用于基于对数据库路由规则的管理,完成查询语句的路由操作;
数据库集群监测单元,用于基于对查询语句的路由操作,对所有数据库节点进行监控,对每组中互备的两台机器,如果插入更新机器宕机,则自动将插入更新操作切换到备份机器,插入机器恢复后自动切回;
所述数据库路由规则管理单元,具体包括:
数据库资源管理模块,用于对分布部署的各个数据库进行管理;
分表规则管理模块,用于对用户配置文件中的规则进行解析,将规则读入到内存中;
分库规则管理模块,用于对配置文件中分库的规则进行解析;
所述数据库路由单元,具体包括:
SQL语句分析管理模块,用于配置语句分析与传入语句分析,配置语句分析解析配置文件中定义的语句,传入语句分析解析程序运行时候的语句;
SQL语句路由模块,用于根据分析好的语句使用路由规则得到相应的数据源;
所述数据库集群监测单元,具体包括:
心跳监控模块,用于对每一组机器启动一个监控线程;设置心跳时间;检查插入数据库状态;以及,检查备份库状态;
所述数据库资源管理模块对分布部署的各个数据库进行管理的操作,进一步包括:
配置数据源链接信息,包括数据库链接地址、数据库名和数据库链接池参数;配置双机热备中主插入、主查询机器ID,两台热备机器为一个组,同组中存储数据互为备份;配置数据库组,包括组ID、组内插入数据库和备份数据源及初始状态;配置数据源管理,包括数据源组及数据源监控器;
和/或,
所述分表规则管理模块将规则读入到内存中的操作,进一步包括:
确定分表的算法,包括一致性哈希算法和整形求余算法;实现分表调用接口;配置算法映射所得值与表后缀直接的关系;
和/或,
所述分库规则管理模块对配置文件中分库的规则进行解析的操作,进一步包括:
定义表操作,包括查询、删除、插入的操作;配置每张表所在的数据库组;配置总体路由规则;
和/或,
所述SQL语句分析管理模块传入语句分析解析程序运行时候的语句的操作,进一步包括:
定义读取定义的SQL语句;运行时候,对输入的语句进行分析;
和/或,
所述SQL语句路由模块根据分析好的语句使用路由规则得到相应的数据源的操作,进一步包括:
计算分表后缀表的后缀根据分表算法计算得出,后缀作为参数传入;通过语句标示得到namespace和id;匹配语句级别的规则,如果匹配成功则不再匹配;如果语句级别规则匹配失败,则匹配命名空间级别的规则如果匹配成功返回规则对应的数据源,否则返回空数据源;
和/或,
所述心跳监控模块检查插入数据库状态的操作,进一步包括:
如果插入数据库状态原来是可用的,检测后发现已经不可用,则将插入数据库备份,同时切换备份库为当前插入库;如果插入数据库状态原来是不可用的,检测后发现插入库已经恢复,则将当前使用的用于插入更新的数据源切换回插入库;
和/或,
所述心跳监控模块检查备份库状态的操作,进一步包括:
检查备份库状态备份库不用管原来的状态,如果备份库不可用则标记备份库状态为不可用,如果备份库可用则标记可用。
2.一种数据库路由方法,其特征在于,包括:
步骤202:对数据库路由规则进行管理,包括数据库资源管理、分表规则管理与分库规则管理;
步骤204:基于对数据库路由规则的管理,完成查询语句的路由操作;
步骤206:基于对查询语句的路由操作,对所有数据库节点进行监控,对每组中互备的两台机器,如果插入更新机器宕机,则自动将插入更新操作切换到备份机器,插入机器恢复后自动切回;
所述步骤202,具体包括:
步骤302:对分布部署的各个数据库进行管理;
步骤304:对用户配置文件中的规则进行解析,将规则读入到内存中;
步骤306:对配置文件中分库的规则进行解析;
所述步骤302对分布部署的各个数据库进行管理的操作,进一步包括:
配置数据源链接信息,包括数据库链接地址、数据库名和数据库链接池参数;配置双机热备中主插入、主查询机器ID,两台热备机器为一个组,同组中存储数据互为备份;配置数据库组,包括组ID、组内插入数据库和备份数据源及初始状态;配置数据源管理,包括数据源组及数据源监控器;
和/或,
所述步骤304将规则读入到内存中的操作,进一步包括:
确定分表的算法,包括一致性哈希算法和整形求余算法;实现分表调用接口;配置算法映射所得值与表后缀直接的关系;
和/或,
所述步骤306对配置文件中分库的规则进行解析的操作,进一步包括:
定义表操作,包括查询、删除、插入的操作;配置每张表所在的数据库组;配置总体路由规则;
所述步骤204,具体包括:
步骤402:配置语句分析与传入语句分析,配置语句分析解析配置文件中定义的语句,传入语句分析解析程序运行时候的语句;
步骤404:根据分析好的语句使用路由规则得到相应的数据源
所述步骤402传入语句分析解析程序运行时候的语句的操作,进一步包括:
定义读取定义的SQL语句;运行时候,对输入的语句进行分析;
和/或,
所述步骤404根据分析好的语句使用路由规则得到相应的数据源的操作,进一步包括:
计算分表后缀表的后缀根据分表算法计算得出,后缀作为参数传入;通过语句标示得到namespace和id;匹配语句级别的规则,如果匹配成功则不再匹配;如果语句级别规则匹配失败,则匹配命名空间级别的规则如果匹配成功返回规则对应的数据源,否则返回空数据源;
所述步骤206,具体包括:
步骤502:对每一组机器启动一个监控线程;
步骤504:基于启动的监控线程,设置心跳时间;
步骤506:基于设置的心跳时间,检查插入数据库状态;
步骤508:基于插入数据库状态的检查结果,检查备份库状态;
所述步骤506检查插入数据库状态的操作,进一步包括:
如果插入数据库状态原来是可用的,检测后发现已经不可用,则将插入数据库备份,同时切换备份库为当前插入库;如果插入数据库状态原来是不可用的,检测后发现插入库已经恢复,则将当前使用的用于插入更新的数据源切换回插入库;
和/或,
所述步骤508检查备份库状态的操作,进一步包括:
检查备份库状态备份库不用管原来的状态,如果备份库不可用则标记备份库状态为不可用,如果备份库可用则标记可用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于用友网络科技股份有限公司,未经用友网络科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410771754.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:移动设备访问医疗设备
- 下一篇:一种用于获取用户感兴趣区域的系统