《数据库路由装置和方法.pdf》由会员分享,可在线阅读,更多相关《数据库路由装置和方法.pdf(22页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 (43)申请公布日 (21)申请号 201410771754.7(22)申请日 2014.12.12G06F 17/30(2006.01)(71)申请人用友软件股份有限公司地址 100094 北京市海淀区北清路68号用友软件园(72)发明人卢相宁 杨鹏(74)专利代理机构北京中恒高博知识产权代理有限公司 11249代理人姜万林(54) 发明名称数据库路由装置和方法(57) 摘要本发明提供了一种数据库路由装置,包括:数据库路由规则管理单元,用于对数据库路由规则进行管理;数据库路由单元,用于基于对数据库路由规则的管理,完成查询语句的路由操作;数据库集群监测单元,用于基于对查询语。
2、句的路由操作,对所有数据库节点进行监控,对每组中互备的两台机器,如果插入更新机器宕机,则自动将插入更新操作切换到备份机器,插入机器恢复后自动切回。本发明还提供了一种数据库路由方法。通过本发明的技术方案,可以在现有的数据库路由方式基础上,充分利用单对象类型元数据和文档描述类型完成多对象类型元数据的数据库路由,建立多对象类型元数据参与的面向对象类语言数据库路由的通用、统一路由思路。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书3页 说明书12页 附图6页(10)申请公布号 CN 104408174 A(43)申请公布日 2015.03.11CN 10440。
3、8174 A1/3页21.一种数据库路由装置,其特征在于,包括:数据库路由规则管理单元,用于对数据库路由规则进行管理,包括数据库资源管理、分表规则管理与分库规则管理;数据库路由单元,用于基于对数据库路由规则的管理,完成查询语句的路由操作;数据库集群监测单元,用于基于对查询语句的路由操作,对所有数据库节点进行监控,对每组中互备的两台机器,如果插入更新机器宕机,则自动将插入更新操作切换到备份机器,插入机器恢复后自动切回。2.根据权利要求1所述的数据库路由装置,其特征在于,所述数据库路由规则管理单元,具体包括:数据库资源管理模块,用于对分布部署的各个数据库进行管理;分表规则管理模块,用于对用户配置文。
4、件中的规则进行解析,将规则读入到内存中;分库规则管理模块,用于对配置文件中分库的规则进行解析。3.根据权利要求1或2所述的数据库路由装置,其特征在于,所述数据库路由单元,具体包括:SQL语句分析管理模块,用于配置语句分析与传入语句分析,配置语句分析解析配置文件中定义的语句,传入语句分析解析程序运行时候的语句;SQL语句路由模块,用于根据分析好的语句使用路由规则得到相应的数据源。4.根据权利要求3所述的数据库路由装置,其特征在于,所述数据库集群监测单元,具体包括:心跳监控模块,用于对每一组机器启动一个监控线程;设置心跳时间;检查插入数据库状态;以及,检查备份库状态。5.根据权利要求4所述的数据库。
5、路由装置,其特征在于,所述数据库资源管理模块对分布部署的各个数据库进行管理的操作,进一步包括:配置数据源链接信息,包括数据库链接地址、数据库名和数据库链接池参数;配置双机热备中主插入、主查询机器ID,两台热备机器为一个组,同组中存储数据互为备份;配置数据库组,包括组ID、组内插入数据库和备份数据源及初始状态;配置数据源管理,包括数据源组及数据源监控器;和/或,所述分表规则管理模块将规则读入到内存中的操作,进一步包括:确定分表的算法,包括一致性哈希算法和整形求余算法;实现分表调用接口;配置算法映射所得值与表后缀直接的关系;和/或,所述分库规则管理模块对配置文件中分库的规则进行解析的操作,进一步包。
6、括:定义表操作,包括查询、删除、插入的操作;配置每张表所在的数据库组;配置总体路由规则;和/或,所述SQL语句分析管理模块传入语句分析解析程序运行时候的语句的操作,进一步包括:定义读取定义的SQL语句;运行时候,对输入的语句进行分析;权 利 要 求 书CN 104408174 A2/3页3和/或,所述SQL语句路由模块根据分析好的语句使用路由规则得到相应的数据源的操作,进一步包括:计算分表后缀表的后缀根据分表算法计算得出,后缀作为参数传入;通过语句标示得到namespace和id;匹配语句级别的规则,如果匹配成功则不再匹配;如果语句级别规则匹配失败,则匹配命名空间级别的规则如果匹配成功返回规则。
7、对应的数据源,否则返回空数据源;和/或,所述心跳监控模块检查插入数据库状态的操作,进一步包括:如果插入数据库状态原来是可用的,检测后发现已经不可用,则将插入数据库备份,同时切换备份库为当前插入库;如果插入数据库状态原来是不可用的,检测后发现插入库已经恢复,则将当前使用的用于插入更新的数据源切换回插入库;和/或,所述心跳监控模块检查备份库状态的操作,进一步包括:检查备份库状态备份库不用管原来的状态,如果备份库不可用则标记备份库状态为不可用,如果备份库可用则标记可用。6.一种数据库路由方法,其特征在于,包括:步骤202:对数据库路由规则进行管理,包括数据库资源管理、分表规则管理与分库规则管理;步骤。
8、204:基于对数据库路由规则的管理,完成查询语句的路由操作;步骤206:基于对查询语句的路由操作,对所有数据库节点进行监控,对每组中互备的两台机器,如果插入更新机器宕机,则自动将插入更新操作切换到备份机器,插入机器恢复后自动切回。7.根据权利要求6所述的数据库路由方法,其特征在于,所述步骤202,具体包括:步骤302:对分布部署的各个数据库进行管理;步骤304:对用户配置文件中的规则进行解析,将规则读入到内存中;步骤306:对配置文件中分库的规则进行解析。8.根据权利要求6或7所述的数据库路由方法,其特征在于,所述步骤204,具体包括:步骤402:配置语句分析与传入语句分析,配置语句分析解析配。
9、置文件中定义的语句,传入语句分析解析程序运行时候的语句;步骤404:根据分析好的语句使用路由规则得到相应的数据源。9.根据权利要求8所述的数据库路由方法,其特征在于,所述步骤206,具体包括:步骤502:对每一组机器启动一个监控线程;步骤504:基于启动的监控线程,设置心跳时间;步骤506:基于设置的心跳时间,检查插入数据库状态;步骤508:基于插入数据库状态的检查结果,检查备份库状态。10.根据权利要求9所述的数据库路由方法,其特征在于,所述步骤302对分布部署的各个数据库进行管理的操作,进一步包括:配置数据源链接信息,包括数据库链接地址、数据库名和数据库链接池参数;配置双机权 利 要 求 。
10、书CN 104408174 A3/3页4热备中主插入、主查询机器ID,两台热备机器为一个组,同组中存储数据互为备份;配置数据库组,包括组ID、组内插入数据库和备份数据源及初始状态;配置数据源管理,包括数据源组及数据源监控器;和/或,所述步骤304将规则读入到内存中的操作,进一步包括:确定分表的算法,包括一致性哈希算法和整形求余算法;实现分表调用接口;配置算法映射所得值与表后缀直接的关系;和/或,所述步骤306对配置文件中分库的规则进行解析的操作,进一步包括:定义表操作,包括查询、删除、插入的操作;配置每张表所在的数据库组;配置总体路由规则;和/或,所述步骤402传入语句分析解析程序运行时候的语。
11、句的操作,进一步包括:定义读取定义的SQL语句;运行时候,对输入的语句进行分析;和/或,所述步骤404根据分析好的语句使用路由规则得到相应的数据源的操作,进一步包括:计算分表后缀表的后缀根据分表算法计算得出,后缀作为参数传入;通过语句标示得到namespace和id;匹配语句级别的规则,如果匹配成功则不再匹配;如果语句级别规则匹配失败,则匹配命名空间级别的规则如果匹配成功返回规则对应的数据源,否则返回空数据源;和/或,所述步骤506检查插入数据库状态的操作,进一步包括:如果插入数据库状态原来是可用的,检测后发现已经不可用,则将插入数据库备份,同时切换备份库为当前插入库;如果插入数据库状态原来是。
12、不可用的,检测后发现插入库已经恢复,则将当前使用的用于插入更新的数据源切换回插入库;和/或,所述步骤508检查备份库状态的操作,进一步包括:检查备份库状态备份库不用管原来的状态,如果备份库不可用则标记备份库状态为不可用,如果备份库可用则标记可用。权 利 要 求 书CN 104408174 A1/12页5数据库路由装置和方法技术领域0001 本发明涉及数据处理技术领域,具体地,涉及一种数据库路由装置和一种数据库路由方法。背景技术0002 互联网络应用中,随着业务的发展,积累的数据越来越多,开始设计的数据库架构不能满足性能及业务的要求,通常会将原来的数据库进行横向切分,即分表;同时可能会根据业务将。
13、数据库进行纵向切分,即分库。伴随数据库架构变化,数据库访问方式也做相应改变,不同阶段使用的分库分表算法也有所不同,其中存在的主要问题有:0003 数据库访问方式随架构变化而变更:随着数据由少变多,数据库架构的变化,原来的路由方法发生改变,数据库访问方式需要相应修改,需要大量代码的修改、测试,浪费时间且容易出错。0004 分库分表算法不能灵活配置:数据量积累的不同阶段,会有不同的分库分表方法,不能灵活配置,方案不具有通用性。0005 数据库分库,在同一库内不能将同一表进行分表:同一表在单库内分表,一是减小表大小提高效率和性能,二是可为以后扩展做准备,避免表拆分数据重新映射问题。0006 如何设计。
14、一个路由方案,使得在数据增长各个阶段数据库访问方式固定,不必大规模修改代码,并且能灵活配置分库分表算法,在同一库中进行数据库表的切分,同时根据规则自动路由到相应的数据库与表,是本发明技术方案的立足点和待解决问题。0007 因此,需要一种新的数据库路由技术,可以在现有的数据库路由方式基础上,充分利用单对象类型元数据和文档描述类型完成多对象类型元数据的数据库路由,建立多对象类型元数据参与的面向对象类语言数据库路由的通用、统一路由思路。发明内容0008 本发明正是基于上述问题,提出了一种新的数据库路由技术,可以在现有的数据库路由方式基础上,充分利用单对象类型元数据和文档描述类型完成多对象类型元数据的。
15、数据库路由,建立多对象类型元数据参与的面向对象类语言数据库路由的通用、统一路由思路。0009 有鉴于此,本发明提出了一种数据库路由装置,包括:数据库路由规则管理单元,用于对数据库路由规则进行管理,包括数据库资源管理、分表规则管理与分库规则管理;数据库路由单元,用于基于对数据库路由规则的管理,完成查询语句的路由操作;数据库集群监测单元,用于基于对查询语句的路由操作,对所有数据库节点进行监控,对每组中互备的两台机器,如果插入更新机器宕机,则自动将插入更新操作切换到备份机器,插入机器恢复后自动切回。在该技术方案中,以数据库热备特性为基础,实现了对分布式数据库插入、更新、查询时候的路由操作,实现同一库。
16、中分表操作,使得在起步阶段可以根据预估的数据规模对数据库表先行切分,避免日后分表的麻烦,方便了日后数据表的迁移。说 明 书CN 104408174 A2/12页60010 在上述技术方案中,优选地,所述数据库路由规则管理单元,具体包括:数据库资源管理模块,用于对分布部署的各个数据库进行管理;分表规则管理模块,用于对用户配置文件中的规则进行解析,将规则读入到内存中;分库规则管理模块,用于对配置文件中分库的规则进行解析。在该技术方案中,可以满足数据增长各个阶段的需求,数据由少至多,在数据库由双机备份到分布式分库分表,用户对库表的访问都不需要改变,只需要做算法调整配置即可。0011 在上述技术方案中。
17、,优选地,所述数据库路由单元,具体包括:SQL语句分析管理模块,用于配置语句分析与传入语句分析,配置语句分析解析配置文件中定义的语句,传入语句分析解析程序运行时候的语句;SQL语句路由模块,用于根据分析好的语句使用路由规则得到相应的数据源。在该技术方案中,可以在预估数据量下先行在同一库中划分多张表,如果数据量较小,则仍然使用一个库即可,节省了硬件资源,如果数据量增大则将已经切分好的数据直接分库,非常方便操作,且不易出错。0012 在上述技术方案中,优选地,所述数据库集群监测单元,具体包括:心跳监控模块,用于对每一组机器启动一个监控线程;设置心跳时间;检查插入数据库状态;以及,检查备份库状态。在。
18、该技术方案中,分表算法灵活可配置,用户可以根据不同发展阶段,选择不同分表算法;在此期间数据库访问方式不需要改变,具有通用性。0013 在上述技术方案中,优选地,所述数据库资源管理模块对分布部署的各个数据库进行管理的操作,进一步包括:配置数据源链接信息,包括数据库链接地址、数据库名和数据库链接池参数;配置双机热备中主插入、主查询机器ID,两台热备机器为一个组,同组中存储数据互为备份;配置数据库组,包括组ID、组内插入数据库和备份数据源及初始状态;配置数据源管理,包括数据源组及数据源监控器;和/或,所述分表规则管理模块将规则读入到内存中的操作,进一步包括:确定分表的算法,包括一致性哈希算法和整形求。
19、余算法;实现分表调用接口;配置算法映射所得值与表后缀直接的关系;和/或,所述分库规则管理模块对配置文件中分库的规则进行解析的操作,进一步包括:定义表操作,包括查询、删除、插入的操作;配置每张表所在的数据库组;配置总体路由规则;和/或,所述SQL语句分析管理模块传入语句分析解析程序运行时候的语句的操作,进一步包括:定义读取定义的SQL语句;运行时候,对输入的语句进行分析;和/或,所述SQL语句路由模块根据分析好的语句使用路由规则得到相应的数据源的操作,进一步包括:计算分表后缀表的后缀根据分表算法计算得出,后缀作为参数传入;通过语句标示得到namespace和id;匹配语句级别的规则,如果匹配成功。
20、则不再匹配;如果语句级别规则匹配失败,则匹配命名空间级别的规则如果匹配成功返回规则对应的数据源,否则返回空数据源;和/或,所述心跳监控模块检查插入数据库状态的操作,进一步包括:如果插入数据库状态原来是可用的,检测后发现已经不可用,则将插入数据库备份,同时切换备份库为当前插入库;如果插入数据库状态原来是不可用的,检测后发现插入库已经恢复,则将当前使用的用于插入更新的数据源切换回插入库;和/或,所述心跳监控模块检查备份库状态的操作,进一步包括:检查备份库状态备份库不用管原来的状态,如果备份库不可用则标记备份库状态为不可用,如果备份库可用则标记可用。0014 根据本发明的又一个方面,还提出了一种数据。
21、库路由方法,包括:步骤202:对数据库路由规则进行管理,包括数据库资源管理、分表规则管理与分库规则管理;步骤204:说 明 书CN 104408174 A3/12页7基于对数据库路由规则的管理,完成查询语句的路由操作;步骤206:基于对查询语句的路由操作,对所有数据库节点进行监控,对每组中互备的两台机器,如果插入更新机器宕机,则自动将插入更新操作切换到备份机器,插入机器恢复后自动切回。在该技术方案中,以数据库热备特性为基础,实现了对分布式数据库插入、更新、查询时候的路由操作,实现同一库中分表操作,使得在起步阶段可以根据预估的数据规模对数据库表先行切分,避免日后分表的麻烦,方便了日后数据表的迁移。
22、。0015 在上述技术方案中,优选地,所述步骤202,具体包括:步骤302:对分布部署的各个数据库进行管理;步骤304:对用户配置文件中的规则进行解析,将规则读入到内存中;步骤306:对配置文件中分库的规则进行解析。在该技术方案中,可以满足数据增长各个阶段的需求,数据由少至多,在数据库由双机备份到分布式分库分表,用户对库表的访问都不需要改变,只需要做算法调整配置即可。0016 在上述技术方案中,优选地,所述步骤204,具体包括:步骤402:配置语句分析与传入语句分析,配置语句分析解析配置文件中定义的语句,传入语句分析解析程序运行时候的语句;步骤404:根据分析好的语句使用路由规则得到相应的数据。
23、源。在该技术方案中,可以在预估数据量下先行在同一库中划分多张表,如果数据量较小,则仍然使用一个库即可,节省了硬件资源,如果数据量增大则将已经切分好的数据直接分库,非常方便操作,且不易出错。0017 在上述技术方案中,优选地,所述步骤206,具体包括:步骤502:对每一组机器启动一个监控线程;步骤504:基于启动的监控线程,设置心跳时间;步骤506:基于设置的心跳时间,检查插入数据库状态;步骤508:基于插入数据库状态的检查结果,检查备份库状态。在该技术方案中,分表算法灵活可配置,用户可以根据不同发展阶段,选择不同分表算法;在此期间数据库访问方式不需要改变,具有通用性。0018 在上述技术方案中。
24、,优选地,所述步骤302对分布部署的各个数据库进行管理的操作,进一步包括:配置数据源链接信息,包括数据库链接地址、数据库名和数据库链接池参数;配置双机热备中主插入、主查询机器ID,两台热备机器为一个组,同组中存储数据互为备份;配置数据库组,包括组ID、组内插入数据库和备份数据源及初始状态;配置数据源管理,包括数据源组及数据源监控器;和/或,所述步骤304将规则读入到内存中的操作,进一步包括:确定分表的算法,包括一致性哈希算法和整形求余算法;实现分表调用接口;配置算法映射所得值与表后缀直接的关系;和/或,所述步骤306对配置文件中分库的规则进行解析的操作,进一步包括:定义表操作,包括查询、删除、。
25、插入的操作;配置每张表所在的数据库组;配置总体路由规则;和/或,所述步骤402传入语句分析解析程序运行时候的语句的操作,进一步包括:定义读取定义的SQL语句;运行时候,对输入的语句进行分析;和/或,所述步骤404根据分析好的语句使用路由规则得到相应的数据源的操作,进一步包括:计算分表后缀表的后缀根据分表算法计算得出,后缀作为参数传入;通过语句标示得到namespace和id;匹配语句级别的规则,如果匹配成功则不再匹配;如果语句级别规则匹配失败,则匹配命名空间级别的规则如果匹配成功返回规则对应的数据源,否则返回空数据源;和/或,所述步骤506检查插入数据库状态的操作,进一步包括:如果插入数据库状。
26、态原来是可用的,检测后发现已经不可用,则将插入数据库备份,同时切换备份库为当前插入库;如果插入数据库状态原来是不可用的,检测后发现插入库已经恢复,则将当前使用的说 明 书CN 104408174 A4/12页8用于插入更新的数据源切换回插入库;和/或,所述步骤508检查备份库状态的操作,进一步包括:检查备份库状态备份库不用管原来的状态,如果备份库不可用则标记备份库状态为不可用,如果备份库可用则标记可用。0019 通过以上技术方案,可以在现有的数据库路由方式基础上,充分利用单对象类型元数据和文档描述类型完成多对象类型元数据的数据库路由,建立多对象类型元数据参与的面向对象类语言数据库路由的通用、统。
27、一路由思路。附图说明0020 图1示出了根据本发明的实施例的数据库路由装置的框图;0021 图2示出了根据本发明的实施例的数据库路由方法的流程图;0022 图3示出了根据本发明的实施例的数据库路由规则管理单元的流程图;0023 图4示出了根据本发明的实施例的数据库路由单元的流程图;0024 图5示出了根据本发明的实施例的数据库集群监测单元的流程图;0025 图6示出了根据本发明的实施例的高扩展可配置的分布式数据库路由机制的处理过程流程图;0026 图7示出了根据本发明的实施例的配置总体路由规则的程序截图;0027 图8示出了根据本发明的实施例的数据库路由单元的整体匹配流程图;0028 图9示出。
28、了根据本发明的实施例的数据库集群监控模块的集群监控流程图。具体实施方式0029 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。0030 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。0031 图1示出了根据本发明的实施例的数据库路由装置的框图。0032 如图1所示,根据本发明的实施例的数据库路由装置100,包括:数据库路由规则管理单元102。
29、,用于对数据库路由规则进行管理,包括数据库资源管理、分表规则管理与分库规则管理;数据库路由单元104,用于基于对数据库路由规则的管理,完成查询语句的路由操作;数据库集群监测单元106,用于基于对查询语句的路由操作,对所有数据库节点进行监控,对每组中互备的两台机器,如果插入更新机器宕机,则自动将插入更新操作切换到备份机器,插入机器恢复后自动切回。在该技术方案中,以数据库热备特性为基础,实现了对分布式数据库插入、更新、查询时候的路由操作,实现同一库中分表操作,使得在起步阶段可以根据预估的数据规模对数据库表先行切分,避免日后分表的麻烦,方便了日后数据表的迁移。0033 在上述技术方案中,优选地,数据。
30、库路由规则管理单元102,具体包括:数据库资源管理模块1022,用于对分布部署的各个数据库进行管理;分表规则管理模块1024,用于对用户配置文件中的规则进行解析,将规则读入到内存中;分库规则管理模块1026,用于说 明 书CN 104408174 A5/12页9对配置文件中分库的规则进行解析。在该技术方案中,可以满足数据增长各个阶段的需求,数据由少至多,在数据库由双机备份到分布式分库分表,用户对库表的访问都不需要改变,只需要做算法调整配置即可。0034 在上述技术方案中,优选地,数据库路由单元104,具体包括:SQL语句分析管理模块1042,用于配置语句分析与传入语句分析,配置语句分析解析配置。
31、文件中定义的语句,传入语句分析解析程序运行时候的语句;SQL语句路由模块1044,用于根据分析好的语句使用路由规则得到相应的数据源。在该技术方案中,可以在预估数据量下先行在同一库中划分多张表,如果数据量较小,则仍然使用一个库即可,节省了硬件资源,如果数据量增大则将已经切分好的数据直接分库,非常方便操作,且不易出错。0035 在上述技术方案中,优选地,数据库集群监测单元106,具体包括:心跳监控模块1062,用于对每一组机器启动一个监控线程;设置心跳时间;检查插入数据库状态;以及,检查备份库状态。在该技术方案中,分表算法灵活可配置,用户可以根据不同发展阶段,选择不同分表算法;在此期间数据库访问方。
32、式不需要改变,具有通用性。0036 在上述技术方案中,优选地,数据库资源管理模块1022对分布部署的各个数据库进行管理的操作,进一步包括:配置数据源链接信息,包括数据库链接地址、数据库名和数据库链接池参数;配置双机热备中主插入、主查询机器ID,两台热备机器为一个组,同组中存储数据互为备份;配置数据库组,包括组ID、组内插入数据库和备份数据源及初始状态;配置数据源管理,包括数据源组及数据源监控器;和/或,分表规则管理模块1024将规则读入到内存中的操作,进一步包括:确定分表的算法,包括一致性哈希算法和整形求余算法;实现分表调用接口;配置算法映射所得值与表后缀直接的关系;和/或,分库规则管理模块1。
33、026对配置文件中分库的规则进行解析的操作,进一步包括:定义表操作,包括查询、删除、插入的操作;配置每张表所在的数据库组;配置总体路由规则;和/或,SQL语句分析管理模块1042传入语句分析解析程序运行时候的语句的操作,进一步包括:定义读取定义的SQL语句;运行时候,对输入的语句进行分析;和/或,SQL语句路由模块1044根据分析好的语句使用路由规则得到相应的数据源的操作,进一步包括:计算分表后缀表的后缀根据分表算法计算得出,后缀作为参数传入;通过语句标示得到namespace和id;匹配语句级别的规则,如果匹配成功则不再匹配;如果语句级别规则匹配失败,则匹配命名空间级别的规则如果匹配成功返回。
34、规则对应的数据源,否则返回空数据源;和/或,心跳监控模块1062检查插入数据库状态的操作,进一步包括:如果插入数据库状态原来是可用的,检测后发现已经不可用,则将插入数据库备份,同时切换备份库为当前插入库;如果插入数据库状态原来是不可用的,检测后发现插入库已经恢复,则将当前使用的用于插入更新的数据源切换回插入库;和/或,心跳监控模块1062检查备份库状态的操作,进一步包括:检查备份库状态备份库不用管原来的状态,如果备份库不可用则标记备份库状态为不可用,如果备份库可用则标记可用。0037 图2示出了根据本发明的实施例的数据库路由方法的流程图。0038 如图2所示,根据本发明的实施例的数据库路由方法。
35、,包括:步骤202:对数据库路由规则进行管理,包括数据库资源管理、分表规则管理与分库规则管理;步骤204:基于对数据库路由规则的管理,完成查询语句的路由操作;步骤206:基于对查询语句的路由操作,对所有数据库节点进行监控,对每组中互备的两台机器,如果插入更新机器宕机,则自说 明 书CN 104408174 A6/12页10动将插入更新操作切换到备份机器,插入机器恢复后自动切回。在该技术方案中,以数据库热备特性为基础,实现了对分布式数据库插入、更新、查询时候的路由操作,实现同一库中分表操作,使得在起步阶段可以根据预估的数据规模对数据库表先行切分,避免日后分表的麻烦,方便了日后数据表的迁移。003。
36、9 在上述技术方案中,优选地,如图3所示,步骤202,具体包括:步骤302:对分布部署的各个数据库进行管理;步骤304:对用户配置文件中的规则进行解析,将规则读入到内存中;步骤306:对配置文件中分库的规则进行解析。在该技术方案中,可以满足数据增长各个阶段的需求,数据由少至多,在数据库由双机备份到分布式分库分表,用户对库表的访问都不需要改变,只需要做算法调整配置即可。0040 在上述技术方案中,优选地,如图4所示,步骤204,具体包括:步骤402:配置语句分析与传入语句分析,配置语句分析解析配置文件中定义的语句,传入语句分析解析程序运行时候的语句;步骤404:根据分析好的语句使用路由规则得到相。
37、应的数据源。在该技术方案中,可以在预估数据量下先行在同一库中划分多张表,如果数据量较小,则仍然使用一个库即可,节省了硬件资源,如果数据量增大则将已经切分好的数据直接分库,非常方便操作,且不易出错。0041 在上述技术方案中,优选地,如图5所示,步骤206,具体包括:步骤502:对每一组机器启动一个监控线程;步骤504:基于启动的监控线程,设置心跳时间;步骤506:基于设置的心跳时间,检查插入数据库状态;步骤508:基于插入数据库状态的检查结果,检查备份库状态。在该技术方案中,分表算法灵活可配置,用户可以根据不同发展阶段,选择不同分表算法;在此期间数据库访问方式不需要改变,具有通用性。0042 。
38、在上述技术方案中,优选地,步骤302对分布部署的各个数据库进行管理的操作,进一步包括:配置数据源链接信息,包括数据库链接地址、数据库名和数据库链接池参数;配置双机热备中主插入、主查询机器ID,两台热备机器为一个组,同组中存储数据互为备份;配置数据库组,包括组ID、组内插入数据库和备份数据源及初始状态;配置数据源管理,包括数据源组及数据源监控器;和/或,步骤304将规则读入到内存中的操作,进一步包括:确定分表的算法,包括一致性哈希算法和整形求余算法;实现分表调用接口;配置算法映射所得值与表后缀直接的关系;和/或,步骤306对配置文件中分库的规则进行解析的操作,进一步包括:定义表操作,包括查询、删。
39、除、插入的操作;配置每张表所在的数据库组;配置总体路由规则;和/或,步骤402传入语句分析解析程序运行时候的语句的操作,进一步包括:定义读取定义的SQL语句;运行时候,对输入的语句进行分析;和/或,步骤404根据分析好的语句使用路由规则得到相应的数据源的操作,进一步包括:计算分表后缀表的后缀根据分表算法计算得出,后缀作为参数传入;通过语句标示得到namespace和id;匹配语句级别的规则,如果匹配成功则不再匹配;如果语句级别规则匹配失败,则匹配命名空间级别的规则如果匹配成功返回规则对应的数据源,否则返回空数据源;和/或,步骤506检查插入数据库状态的操作,进一步包括:如果插入数据库状态原来是可用的,检测后发现已经不可用,则将插入数据库备份,同时切换备份库为当前插入库;如果插入数据库状态原来是不可用的,检测后发现插入库已经恢复,则将当前使用的用于插入更新的数据源切换回插入库;和/或,步骤508检查备份库状态的操作,进一步包括:检查备份库状态备份库不用管原来的状态,如果备份库不可用则标记备份库状态为不可用,如果备份库可用则标记说 明 书CN 104408174 A10。