一种数据库构建方法及系统与流程

文档序号:36245900发布日期:2023-12-02 11:41阅读:26来源:国知局
一种数据库构建方法及系统与流程

所属的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的模块、方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,软件模块、方法步骤对应的程序可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或内所公知的任意其它形式的存储介质中。为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。


背景技术:

1、在当今互联网迅速发展的时代下,数据量也在逐渐飙升,因此数据库构建就成了关键的部分,在原有孤立的分区域建设的业务系统进行集中化建设后,原有的业务系统所承担的业务用户访问量和数据存储量会出现大幅度的增长,而传统的数据库架构已经无法满足数据库的横向扩展能力,以及对海量数据的高性能、高稳定性的需求。

2、在现有技术中,一般手动搭建从数据库,并在数据库发生故障时人为操作切换到从数据库,很多的应用和网站都会严重的依赖数据库,但是大多数的查询都是重复的,消耗数据库内存以及查询速度变慢,而且主从同步延迟会导致数据查询不准确,对研发人员依赖性强,可运维性较差,故障时间变长,因此,提出一种数据库构建方法及系统来解决上述问题。


技术实现思路

1、本发明提供一种数据库构建方法及系统,用以解决现有技术中手动搭建从数据库,在数据库发生故障时人为操作切换到从数据库,大多数的查询都是重复的,消耗数据库内存以及查询速度变慢,而且主从同步延迟会导致数据查询不准确,对研发人员依赖性强,可运维性较差,故障时间变长的问题。该构建方法包括:

2、根据分库分表规则对总数据进行分库分表,形成多个子数据库,将多个所述子数据库储存到主数据库中;

3、创建至少一个从数据库,将所述主数据中多个子数据库同步至与所述从数据库中,在预设时间间隔后采集所述主数据库和所述从数据库的同步状态;

4、根据所述同步状态判断所述主数据库和从数据库同步是否发生延迟,若判断发生延迟,增加创建所述从数据库的数量,直至所述同步状态为正常状态。

5、在本技术的一些实施例中,所述构建方法还包括:

6、在所述主数据库中和所述从数据库中设置缓存层;

7、所述缓存层用于缓存达到预设查询规则的查询请求及对应的查询结果,当接收到所述查询请求时,直接向所述缓存层发送所述查询请求,所述缓存层直接返回所述查询结果;

8、所述查询规则为查询次数超过预设查询次数且查询内容相同的查询请求,在接收到向数据已满的缓存层添加新的所述查询请求时,对所述缓存层中的数据进行更新,并删除在预设时段内没有达到所述查询规则的所述查询请求及对应的查询结果。

9、在本技术的一些实施例中,所述构建方法还包括:

10、构建备份数据库,所述备份数据库用于当所述主数据库出现异常时代替所述主数据库写入数据;

11、实时监测所述主数据库的健康状况,当监测到所述主数据库的健康状况出现异常时,所述主数据库不可再写入数据,将在预设时间内写入所述主数据库的数据写入到所述备份数据库中,当监测到所述主数据库的健康状况恢复正常时,将所述备份数据库中的数据写回所述主数据库中,并同步至所述从数据库。

12、在本技术的一些实施例中,所述根据所述同步状态判断所述主数据库和从数据库同步是否发生延迟时,包括:

13、获取所述主数据库执行完事务,写入binlog的第一时间t1和所述从库执行完此事务的第二时间t2,所述第二时间t2和所述第一时间t1进行作差得到时间差值t0;

14、预先设定有第一预设时间差值△t1,第二预设时间差值△t2,第三预设时间差值△t3,第四预设时间差值△t4,且△t1<△t2<△t3<△t4;

15、当t0≤△t1时,判断所述同步状态为正常状态;

16、当△t1<t0≤△t2时,判断所述主数据库和从数据库同步是否发生延迟,创建所述从数据库的数量增加至第一预设数量;

17、当△t2<t0≤△t3时,判断所述主数据库和从数据库同步是否发生延迟,创建所述从数据库的数量增加至第二预设数量;

18、当△t3<t0≤△t4时,判断所述主数据库和从数据库同步是否发生延迟,创建所述从数据库的数量增加至第三预设数量;

19、其中,第一预设数量<第二预设数量<第三预设数量。

20、在本技术的一些实施例中,所述分库分表规则包括垂直分库分表和水平分库分表,所述垂直分库分表用于将所述总数据按照功能模块进行划分,所述水平分库分表用于当所述将同一个表中的数据分片保存到多个所述子数据库中。

21、在本技术的一些实施例中,还包括一种数据库构建系统:

22、分库分表模块,用于根据分库分表规则对总数据进行分库分表,形成多个字数据库,将多个所述子数据库储存到对应的主数据库中;

23、创建模块,用于创建至少一个从数据库,将所述主数据中多个子数据库同步至与所述从数据库中,在预设时间间隔后采集所述主数据库和所述从数据库的同步状态;

24、判断模块,用于根据所述同步状态判断所述主数据库和从数据库同步是否发生延迟,若判断发生延迟,增加创建所述从数据库的数量,直至所述同步状态为正常状态。

25、在本技术的一些实施例中,所述构建系统还包括:

26、缓存模块,设置在所述主数据库和所述从数据库中,所述缓存模块用于缓存达到预设查询规则的查询请求及对应的查询结果,当接收到所述查询请求时,直接向所述缓存层发送所述查询请求,所述缓存层直接返回所述查询结果;

27、其中,所述查询规则为查询次数超过预设查询次数且查询内容相同的查询请求,在接收到向数据已满的缓存层添加新的所述查询请求时,对所述缓存层中的数据进行更新,并删除在预设时段内没有达到所述查询规则的所述查询请求及对应的查询结果。

28、在本技术的一些实施例中,所述构建系统还包括:

29、备份模块,用于构建备份数据库,所述备份数据库用于当所述主数据库出现异常时代替所述主数据库写入数据;

30、其中,所述备份模块实时监测所述主数据库的健康状况,当监测到所述主数据库的健康状况出现异常时,所述主数据库不可再写入数据,将在预设时间内写入所述主数据库的数据写入到所述备份数据库中,当监测到所述主数据库的健康状况恢复正常时,将所述备份数据库中的数据写回所述主数据库中,并同步至所述从数据库。

31、在本技术的一些实施例中,所述判断模块根据所述同步状态判断所述主数据库和从数据库同步是否发生延迟时,包括:

32、所述判断模块获取所述主数据库执行完事务,写入binlog的第一时间t1和所述从库执行完此事务的第二时间t2,所述第二时间t2和所述第一时间t1进行作差得到时间差值t0;

33、所述判断模块内预先设定有第一预设时间差值△t1,第二预设时间差值△t2,第三预设时间差值△t3,第四预设时间差值△t4,且△t1<△t2<△t3<△t4;

34、当t0≤△t1时,判断所述同步状态为正常状态;

35、当△t1<t0≤△t2时,判断所述主数据库和从数据库同步是否发生延迟,创建所述从数据库的数量增加至第一预设数量;

36、当△t2<t0≤△t3时,判断所述主数据库和从数据库同步是否发生延迟,创建所述从数据库的数量增加至第二预设数量;

37、当△t3<t0≤△t4时,判断所述主数据库和从数据库同步是否发生延迟,创建所述从数据库的数量增加至第三预设数量;

38、其中,第一预设数量<第二预设数量<第三预设数量。

39、在本技术的一些实施例中,所述分库分表模块中的所述分库分表规则包括垂直分库分表和水平分库分表,所述垂直分库分表用于将所述总数据按照功能模块进行划分,所述水平分库分表用于当所述将同一个表中的数据分片保存到多个所述子数据库中。

40、本技术实施例与现有技术相比,带来了以下有益效果:

41、(1)根据分库分表规则对总数据进行分库分表,形成多个子数据库,将多个所述子数据库储存到主数据库中,创建至少一个从数据库,将所述主数据中多个子数据库同步至与所述从数据库中,解决了由于数据量过大而导致数据库性能降低的问题,将数据大表拆分成若干数据表组成,使得单一数据库、单一数据表的数据量变小,从而达到提升数据库性能的目的;

42、(2)采集所述主数据库和所述从数据库的同步状态,所述主数据库和从数据库同步发生延迟时,增加创建所述从数据库的数量,直至所述同步状态为正常状态,解决了主从同步延迟会导致数据查询不准确的问题;

43、(3)在主数据库和从数据库中设置缓存层,缓存满足查询规则的查询请求及对应的查询结果,当接收到所述查询请求时,直接向所述缓存层发送所述查询请求,所述缓存层直接返回所述查询结果,解决了在系统长时间运行后,资源加载重复请求加大了服务器压力的问题;

44、(4)构建备份数据库,在主数据库出现故障时,备份数据库自动接入需写入主数据库中的数据,当主数据库恢复正常时,将数据写回主数据库中并同步给从数据库,解决了对研发人员依赖性强,可运维性较差,故障时间变长的问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1