一种数据库构建方法及系统技术方案

技术编号:39601291 阅读:10 留言:0更新日期:2023-12-03 20:01
本发明专利技术涉及数据库架构技术领域,特别是涉及一种数据库构建方法及系统,该方法包括:根据分库分表规则对总数据进行分库分表,形成多个子数据库,将多个所述子数据库储存到主数据库中;创建至少一个从数据库,将所述主数据中多个子数据库同步至与所述从数据库中,在预设时间间隔后采集所述主数据库和所述从数据库的同步状态;根据所述同步状态判断所述主数据库和从数据库同步是否发生延迟,若判断发生延迟,增加创建所述从数据库的数量;本发明专利技术解决了现有技术中在数据库发生故障时人为切换到从数据库,大多数的查询都是重复的,消耗数据库内存以及查询速度变慢,而且主从同步延迟会导致数据查询不准确,对研发人员依赖性强,可运维性较差的问题

【技术实现步骤摘要】
一种数据库构建方法及系统


[0001]本专利技术涉及数据库架构
,更具体地,涉及一种数据库构建方法及系统


技术介绍

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

高稳定性的需求

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


技术实现思路

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

该构建方法包括:根据分库分表规则对总数据进行分库分表,形成多个子数据库,将多个所述子数据库储存到主数据库中;创建至少一个从数据库,将所述主数据中多个子数据库同步至与所述从数据库中,在预设时间间隔后采集所述主数据库和所述从数据库的同步状态;根据所述同步状态判断所述主数据库和从数据库同步是否发生延迟,若判断发生延迟,增加创建所述从数据库的数量,直至所述同步状态为正常状态

[0005]在本申请的一些实施例中,所述构建方法还包括:在所述主数据库中和所述从数据库中设置缓存层;所述缓存层用于缓存达到预设查询规则的查询请求及对应的查询结果,当接收到所述查询请求时,直接向所述缓存层发送所述查询请求,所述缓存层直接返回所述查询结果;所述查询规则为查询次数超过预设查询次数且查询内容相同的查询请求,在接收到向数据已满的缓存层添加新的所述查询请求时,对所述缓存层中的数据进行更新,并删除在预设时段内没有达到所述查询规则的所述查询请求及对应的查询结果

[0006]在本申请的一些实施例中,所述构建方法还包括:构建备份数据库,所述备份数据库用于当所述主数据库出现异常时代替所述主数据库写入数据;
实时监测所述主数据库的健康状况,当监测到所述主数据库的健康状况出现异常时,所述主数据库不可再写入数据,将在预设时间内写入所述主数据库的数据写入到所述备份数据库中,当监测到所述主数据库的健康状况恢复正常时,将所述备份数据库中的数据写回所述主数据库中,并同步至所述从数据库

[0007]在本申请的一些实施例中,所述根据所述同步状态判断所述主数据库和从数据库同步是否发生延迟时,包括:获取所述主数据库执行完事务,写入
binlog
的第一时间
T1
和所述从库执行完此事务的第二时间
T2
,所述第二时间
T2
和所述第一时间
T1
进行作差得到时间差值
T0
;预先设定有第一预设时间差值

T1
,第二预设时间差值

T2
,第三预设时间差值

T3
,第四预设时间差值

T4
,且

T1


T2


T3


T4
;当
T0≤

T1
时,判断所述同步状态为正常状态;当

T1

T0≤

T2
时,判断所述主数据库和从数据库同步是否发生延迟,创建所述从数据库的数量增加至第一预设数量;当

T2

T0≤

T3
时,判断所述主数据库和从数据库同步是否发生延迟,创建所述从数据库的数量增加至第二预设数量;当

T3

T0≤

T4
时,判断所述主数据库和从数据库同步是否发生延迟,创建所述从数据库的数量增加至第三预设数量;其中,第一预设数量<第二预设数量<第三预设数量

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

[0009]在本申请的一些实施例中,还包括一种数据库构建系统:分库分表模块,用于根据分库分表规则对总数据进行分库分表,形成多个字数据库,将多个所述子数据库储存到对应的主数据库中;创建模块,用于创建至少一个从数据库,将所述主数据中多个子数据库同步至与所述从数据库中,在预设时间间隔后采集所述主数据库和所述从数据库的同步状态;判断模块,用于根据所述同步状态判断所述主数据库和从数据库同步是否发生延迟,若判断发生延迟,增加创建所述从数据库的数量,直至所述同步状态为正常状态

[0010]在本申请的一些实施例中,所述构建系统还包括:缓存模块,设置在所述主数据库和所述从数据库中,所述缓存模块用于缓存达到预设查询规则的查询请求及对应的查询结果,当接收到所述查询请求时,直接向所述缓存层发送所述查询请求,所述缓存层直接返回所述查询结果;其中,所述查询规则为查询次数超过预设查询次数且查询内容相同的查询请求,在接收到向数据已满的缓存层添加新的所述查询请求时,对所述缓存层中的数据进行更新,并删除在预设时段内没有达到所述查询规则的所述查询请求及对应的查询结果

[0011]在本申请的一些实施例中,所述构建系统还包括:备份模块,用于构建备份数据库,所述备份数据库用于当所述主数据库出现异常时代替所述主数据库写入数据;其中,所述备份模块实时监测所述主数据库的健康状况,当监测到所述主数据库
的健康状况出现异常时,所述主数据库不可再写入数据,将在预设时间内写入所述主数据库的数据写入到所述备份数据库中,当监测到所述主数据库的健康状况恢复正常时,将所述备份数据库中的数据写回所述主数据库中,并同步至所述从数据库

[0012]在本申请的一些实施例中,所述判断模块根据所述同步状态判断所述主数据库和从数据库同步是否发生延迟时,包括:所述判断模块获取所述主数据库执行完事务,写入
binlog
的第一时间
T1
和所述从库执行完此事务的第二时间
T2
,所述第二时间
T2
和所述第一时间
T1
...

【技术保护点】

【技术特征摘要】
1.
一种数据库构建方法,其特征在于,包括:根据分库分表规则对总数据进行分库分表,形成多个子数据库,将多个所述子数据库储存到主数据库中;创建至少一个从数据库,将所述主数据中多个子数据库同步至与所述从数据库中,在预设时间间隔后采集所述主数据库和所述从数据库的同步状态;根据所述同步状态判断所述主数据库和从数据库同步是否发生延迟,若判断发生延迟,增加创建所述从数据库的数量,直至所述同步状态为正常状态
。2.
如权利要求1所述的数据库构建方法,其特征在于,还包括:在所述主数据库中和所述从数据库中设置缓存层;所述缓存层用于缓存达到预设查询规则的查询请求及对应的查询结果,当接收到所述查询请求时,直接向所述缓存层发送所述查询请求,所述缓存层直接返回所述查询结果;所述查询规则为查询次数超过预设查询次数且查询内容相同的查询请求,在接收到向数据已满的缓存层添加新的所述查询请求时,对所述缓存层中的数据进行更新,并删除在预设时段内没有达到所述查询规则的所述查询请求及对应的查询结果
。3.
如权利要求1所述的数据库构建方法,其特征在于,还包括:构建备份数据库,所述备份数据库用于当所述主数据库出现异常时代替所述主数据库写入数据;实时监测所述主数据库的健康状况,当监测到所述主数据库的健康状况出现异常时,所述主数据库不可再写入数据,将在预设时间内写入所述主数据库的数据写入到所述备份数据库中,当监测到所述主数据库的健康状况恢复正常时,将所述备份数据库中的数据写回所述主数据库中,并同步至所述从数据库
。4.
如权利要求1所述的数据库构建方法,其特征在于,所述根据所述同步状态判断所述主数据库和从数据库同步是否发生延迟时,包括:获取所述主数据库执行完事务,写入
binlog
的第一时间
T1
和所述从库执行完此事务的第二时间
T2
,所述第二时间
T2
和所述第一时间
T1
进行作差得到时间差值
T0
;预先设定有第一预设时间差值

T1
,第二预设时间差值

T2
,第三预设时间差值

T3
,第四预设时间差值

T4
,且

T1


T2


T3


T4
;当
T0≤

T1
时,判断所述同步状态为正常状态;当

T1

T0≤

T2
时,判断所述主数据库和从数据库同步是否发生延迟,创建所述从数据库的数量增加至第一预设数量;当

T2

T0≤

T3
时,判断所述主数据库和从数据库同步是否发生延迟,创建所述从数据库的数量增加至第二预设数量;当

T3

T0≤

T4
时,判断所述主数据库和从数据库同步是否发生延迟,创建所述从数据库的数量增加至第三预设数量;其中,第一预设数量<第二预设数量<第三预设数量
。5.
如权利要求1所述的数据库构建方法,其特征在于,所述分库分表规则包括垂直分库分表和水平分库分表,所述垂直分库分表用于将所述总数据按照功能模块进行划分,所述水平分库分表用于当所述将同一个表中的数据分片保存到多个所述子数据库中
。6.
一种数据库构建系统,其特征在于,包括:
分库分表模块,用于...

【专利技术属性】
技术研发人员:高梦阳王文涛刘丽孙崇武董前进张政李楚楚赵晨鸣蒋文超安琪
申请(专利权)人:华能信息技术有限公司华能山东发电有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1