【技术实现步骤摘要】
本专利技术涉及数据处理
,具体地,涉及一种数据库路由装置和一种数据库 路由方法。
技术介绍
互联网络应用中,随着业务的发展,积累的数据越来越多,开始设计的数据库架构 不能满足性能及业务的要求,通常会将原来的数据库进行横向切分,即分表;同时可能会根 据业务将数据库进行纵向切分,即分库。伴随数据库架构变化,数据库访问方式也做相应改 变,不同阶段使用的分库分表算法也有所不同,其中存在的主要问题有: ⑴数据库访问方式随架构变化而变更:随着数据由少变多,数据库架构的变化,原 来的路由方法发生改变,数据库访问方式需要相应修改,需要大量代码的修改、测试,浪费 时间且容易出错。 ⑵分库分表算法不能灵活配置:数据量积累的不同阶段,会有不同的分库分表方 法,不能灵活配置,方案不具有通用性。 ⑶数据库分库,在同一库内不能将同一表进行分表:同一表在单库内分表,一是减 小表大小提高效率和性能,二是可为以后扩展做准备,避免表拆分数据重新映射问题。 如何设计一个路由方案,使得在数据增长各个阶段数据库访问方式固定,不必大 规模修改代码,并且能灵活配置分库分表算法,在同一库中进行数据库表的切分,同时根据 规则自动路由到相应的数据库与表,是本专利技术技术方案的立足点和待解决问题。 因此,需要一种新的数据库路由技术,可以在现有的数据库路由方式基础上,充分 利用单对象类型元数据和文档描述类型完成多对象类型元数据的数据库路由,建立多对象 类型元数据参与的面向对象类语言数据库路由的通用、统一路由思路。
技术实现思路
本专利技术正是 ...
【技术保护点】
一种数据库路由装置,其特征在于,包括:数据库路由规则管理单元,用于对数据库路由规则进行管理,包括数据库资源管理、分表规则管理与分库规则管理;数据库路由单元,用于基于对数据库路由规则的管理,完成查询语句的路由操作;数据库集群监测单元,用于基于对查询语句的路由操作,对所有数据库节点进行监控,对每组中互备的两台机器,如果插入更新机器宕机,则自动将插入更新操作切换到备份机器,插入机器恢复后自动切回。
【技术特征摘要】
1. 一种数据库路由装置,其特征在于,包括: 数据库路由规则管理单元,用于对数据库路由规则进行管理,包括数据库资源管理、分 表规则管理与分库规则管理; 数据库路由单元,用于基于对数据库路由规则的管理,完成查询语句的路由操作; 数据库集群监测单元,用于基于对查询语句的路由操作,对所有数据库节点进行监控, 对每组中互备的两台机器,如果插入更新机器宕机,则自动将插入更新操作切换到备份机 器,插入机器恢复后自动切回。2. 根据权利要求1所述的数据库路由装置,其特征在于,所述数据库路由规则管理单 元,具体包括: 数据库资源管理模块,用于对分布部署的各个数据库进行管理; 分表规则管理模块,用于对用户配置文件中的规则进行解析,将规则读入到内存中; 分库规则管理模块,用于对配置文件中分库的规则进行解析。3. 根据权利要求1或2所述的数据库路由装置,其特征在于,所述数据库路由单元,具 体包括: SQL语句分析管理模块,用于配置语句分析与传入语句分析,配置语句分析解析配置文 件中定义的语句,传入语句分析解析程序运行时候的语句; SQL语句路由模块,用于根据分析好的语句使用路由规则得到相应的数据源。4. 根据权利要求3所述的数据库路由装置,其特征在于,所述数据库集群监测单元,具 体包括: 心跳监控模块,用于对每一组机器启动一个监控线程;设置心跳时间;检查插入数据 库状态;以及,检查备份库状态。5. 根据权利要求4所述的数据库路由装置,其特征在于,所述数据库资源管理模块对 分布部署的各个数据库进行管理的操作,进一步包括: 配置数据源链接信息,包括数据库链接地址、数据库名和数据库链接池参数;配置双机 热备中主插入、主查询机器ID,两台热备机器为一个组,同组中存储数据互为备份;配置数 据库组,包括组ID、组内插入数据库和备份数据源及初始状态;配置数据源管理,包括数据 源组及数据源监控器; 和/或, 所述分表规则管理模块将规则读入到内存中的操作,进一步包括: 确定分表的算法,包括一致性哈希算法和整形求余算法;实现分表调用接口;配置算 法映射所得值与表后缀直接的关系; 和/或, 所述分库规则管理模块对配置文件中分库的规则进行解析的操作,进一步包括: 定义表操作,包括查询、删除、插入的操作;配置每张表所在的数据库组;配置总体路 由规则; 和/或, 所述SQL语句分析管理模块传入语句分析解析程序运行时候的语句的操作,进一步包 括: 定义读取定义的SQL语句;运行时候,对输入的语句进行分析; 和/或, 所述SQL语句路由模块根据分析好的语句使用路由规则得到相应的数据源的操作,进 一步包括: 计算分表后缀表的后缀根据分表算法计算得出,后缀作为参数传入;通过语句标示得 至IJnamespace和id ;匹配语句级别的规则,如果匹配成功则不再匹配;如果语句级别规则匹 配失败,则匹配命名空间级别的规则如果匹配成功返回规则对应的数据源,否则返回空数 据源; 和/或, 所述心跳监控模块检查插入数据库状态的操作,进一步包括: 如果插入数据库状态原来是可用的,检测后发现已经不可用,则将插入数据库备份,同 时切换备份库为当前插入库;如果插入数据库状态原来是不可用的,检测后发现插入库已 经恢复,则将当前使用的用于插入更新的数据源切换回插入库; 和/或, 所述心跳监控模块检查备份库状态的操作,进一步包括: 检查备份库状态备份库不用管原来的状态,如果备份库不可用则标记备份库状态为不 可用,如果...
【专利技术属性】
技术研发人员:卢相宁,杨鹏,
申请(专利权)人:用友软件股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。