CN109471861A - 一种基于MySql的数据分布式储存系统 - Google Patents

一种基于MySql的数据分布式储存系统 Download PDF

Info

Publication number
CN109471861A
CN109471861A CN201811293211.3A CN201811293211A CN109471861A CN 109471861 A CN109471861 A CN 109471861A CN 201811293211 A CN201811293211 A CN 201811293211A CN 109471861 A CN109471861 A CN 109471861A
Authority
CN
China
Prior art keywords
database
master
mysql
library
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811293211.3A
Other languages
English (en)
Inventor
沈礼伟
黄诗丰
刘理想
杨红
姜智耀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Tianchen Li Electronic Technology Co Ltd
Original Assignee
Nanjing Tianchen Li Electronic Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Tianchen Li Electronic Technology Co Ltd filed Critical Nanjing Tianchen Li Electronic Technology Co Ltd
Priority to CN201811293211.3A priority Critical patent/CN109471861A/zh
Publication of CN109471861A publication Critical patent/CN109471861A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于MySql的数据分布式储存系统,包括以下步骤:步骤(1):对分布式部署进行配置;步骤(2):数据库集群采用主从分离模式;步骤(3):通过读取配置文件,获取数据库连接信息,定时读取数据库中工程列表信息,将该数据库的连接信息及工程列表信息通知Database Router;步骤(4):将SQL语句进行解析,并转发到正确的分片上,保证SQL执行后得到正确的结果,并且节约QPS资源,本发明采用基于MySQL的主从分离分布式方案,针对施工现场数据量较大,多用户访问数据库频繁的问题设计构建。

Description

一种基于MySql的数据分布式储存系统
技术领域
本发明涉及MySQL的数据分布式存储领域,特别涉及一种基于MySql的数据分布式储存系统。
背景技术
在现代化机场、铁路、公路等大型基础设施工程建设中,机器设备会产生大量施工数据,面对大量的施工数据,需要进行数据库储存以便客户端及终端设备的访问。随着系统应用访问量逐渐增大,单台数据库读写访问压力也随之增大,当读写访问达到一定瓶颈时,数据库的读写效率骤然下降,甚至不可用;为了解决此类问题,通常会采用数据库集群。
现有的数据库集群存在一个严重的问题,即当主库宕机后,会出现数据丢失的隐患,集群会将一个从库升级为主库,继续对外提供服务;因此主库和从库之间的数据同步是数据库分布式部署的关键步骤。其次,主从数据库采用读写分离的方式,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理查询(SELECT)操作。数据库复制目的是把事务性操作导致的变更同步到集群中的从数据库,以加快用户查询数据库的速度。
目前数字施工产品中对于海量施工数据的管理并不完善,没有保证数据存储的安全性,没有加快用户查询数据库的速度。需要进一步完善数据分布式储存方案,提升用户的作业效率及用户体验。
发明内容
为了解决上述不足的缺陷,本发明提供了一种基于MySql的数据分布式储存系统,本发明采用基于MySQL的主从分离分布式方案,针对施工现场数据量较大,多用户访问数据库频繁的问题设计构建。该技术两个关键点分别为主从数据库的同步问题及主从数据库读写分离的问题,即同步旨在于解决数据安全,数据热备份的问题;读写分离旨在于解决用户访问数据库速度慢,用户体验较差的问题。
本发明提供了一种基于MySql的数据分布式储存系统,包括以下步骤:
步骤(1):对分布式部署进行配置;
步骤(2):数据库集群采用主从分离模式;
步骤(3):通过读取配置文件,获取数据库连接信息,定时读取数据库中工程列表信息,将该数据库的连接信息及工程列表信息通知DatabaseRouter;
步骤(4):将SQL语句进行解析,并转发到正确的分片上,保证SQL执行后得到正确的结果,并且节约QPS资源。
上述的系统,其中,所述步骤(1)包括:
步骤(1.1):主服务器:开启二进制日志;配置唯一的server-id;获得master二进制日志文件名及位置;创建一个用于slave和master通信的用户账号;
步骤(1.2):从服务器:配置唯一的server-id;使用master分配的用户账号读取master二进制日志;启用slave服务。
上述的系统,其中,所述步骤(2)包括:每一个PC机器配置Master主库、Slave从库及Reporter模块,其中Master主库负责用户Application的增、删、改请求,Slave从库负责用户Application的读请求,实现主从分离、读写分离。
上述的系统,其中,所述步骤(3)具体包括:通过读取配置文件,获取数据库连接信息,定时读取数据库中工程列表信息,将该数据库的连接信息及工程列表信息通知Database Router。
上述的系统,其中,所述步骤(4)具体包括:
步骤(4.1):获取特定工程的数据库连接信息;
步骤(4.2):新建工程时的数据库连接分配。
本发明具有以下有益效果:1、构建主从分离数据库,能够有效备份数据,避免主机夯机造成的数据丢失;2、构建主从分离数据库,实现读写分离,能够快速响应用户的查询请求,提高工作效率,提升用户体验;3、构建分布式数据库,经济性能优越,系统的可靠性高、可用性好,局部应用的响应速度快。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明及其特征、外形和优点将会变得更明显。在全部附图中相同的标记指示相同的部分。并未刻意按照比例绘制附图,重点在于示出本发明的主旨。
图1为本发明提供的MySQL主从分离实现方式示意图。
图2为本发明提供的智能压实系统中数据库分布式存储方案示意图。
具体实施方式
在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。
为了彻底理解本发明,将在下列的描述中提出详细的步骤以及详细的结构,以便阐释本发明的技术方案。本发明的较佳实施例详细描述如下,然而除了这些详细描述外,本发明还可以具有其他实施方式。
在本发明中:数据库读写分离的意义:一句SQL语句需要锁表,导致暂时不能使用读的服务,那么就会影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作;做数据的热备,保证了系统的冗余,提高系统安全性;业务量越来越大,I/O访问频率过高,单机性能无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。
在本发明中数据库主从分离机制原理:主从数据库之间数据复制的基础是二进制日志文件(binary log file)。一台数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后slave的一个SQL线程会把相关的“事件”执行到自己的数据库中,以此实现从数据库和主数据库的一致性,也就实现了主从复制。
在本发明中,MySQL主从分离需实现方式:
MySQL主从复制实现需要三个线程,其中1个在主服务器上,另两个在从服务器上。当发出START SLAVE时,从服务器创建一个I/O线程,以连接主服务器并让它发送记录在其二进制日志中的语句。主服务器创建一个线程将二进制日志中的内容发送到从服务器。该线程可以识别为主服务器上SHOWPROCESSLIST的输出中的Binlog Dump线程。从服务器I/O线程读取主服务器Binlog Dump线程发送的内容并将该数据拷贝到从服务器数据目录中的本地文件中,即中继日志。第3个线程是SQL线程,是从服务器创建用于读取中继日志并执行日志中包含的更新。图1中MySql主从分离实现:
步骤一:主库的更新事件(update、insert、delete)被写到binlog;
步骤二:从库发起连接,连接到主库;
步骤三:此时主库创建一个binlog dump thread,把binlog的内容发送到从库;
步骤四:从库启动之后,创建一个I/O线程,读取主库传过来的binlog内容并写入到relay log;
步骤五:从库还会创建一个SQL线程,从relay log里面读取内容,从Exec_Master_Log_Pos位置开始执行读取到的更新事件,将更新内容写入到从库。
在本发明中,分布式数据库概念及意义:
分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库,本案例中智能压实项目将在每一台PC上部署MySQL数据,实现主从分离,通过多台PC机器实现数据库分布式部署。
参照图1-图2所示,本发明提供了一种基于MySql的数据分布式储存系统,包括步骤(1):对分布式部署进行配置,其中步骤(1)包括:
步骤(1.1):主服务器:开启二进制日志;配置唯一的server-id;获得master二进制日志文件名及位置;创建一个用于slave和master通信的用户账号;步骤(1.2):从服务器:配置唯一的server-id;使用master分配的用户账号读取master二进制日志;启用slave服务;
步骤(2):数据库集群采用主从分离模式,其中步骤(2)包括:每一个PC机器配置Master主库、Slave从库及Reporter模块,其中Master主库负责用户Application的增、删、改请求,Slave从库负责用户Application的读请求,实现主从分离、读写分离;
步骤(3):通过读取配置文件,获取数据库连接信息,定时读取数据库中工程列表信息,将该数据库的连接信息及工程列表信息通知DatabaseRouter,其中步骤(3)具体包括:通过读取配置文件,获取数据库连接信息,定时读取数据库中工程列表信息,将该数据库的连接信息及工程列表信息通知Database Router;
步骤(4):将SQL语句进行解析,并转发到正确的分片上,保证SQL执行后得到正确的结果,并且节约QPS资源,其中步骤(4)具体包括:步骤(4.1):获取特定工程的数据库连接信息;步骤(4.2):新建工程时的数据库连接分配。
在本发明中,本方法构建主从分离数据库,能够有效备份数据,避免主机夯机造成的数据丢失。本方法构建主从分离数据库,实现读写分离,能够快速响应用户的查询请求,提高工作效率,提升用户体验,本方法构建分布式数据库,经济性能优越,系统的可靠性高、可用性好,局部应用的响应速度快。
在本发明中,实现分布式部署需要进行的配置包括:主服务器:开启二进制日志;配置唯一的server-id;获得master二进制日志文件名及位置;创建一个用于slave和master通信的用户账号。从服务器:配置唯一的server-id;使用master分配的用户账号读取master二进制日志;启用slave服务。针对分布式数据存储设计思路如下:提供分库规则和路由规则;引入集群的概念,解决容错性的问题,保证数据的高可用性;引入负载均衡策略;引入集群节点可用性探测机制,对单点机器的可用性进行定时的侦测(PC1、PC2等),以保证负载均衡的正确实施,以确保系统的高度稳定性;引入读写分离,提高数据查询的速度。
在本发明中数据库集群采用主从分离模式:即每一个PC机器配置Master主库、Slave从库及Reporter模块,其中Master主库负责用户Application的增、删、改请求,Slave从库负责用户Application的读请求,实现主从分离、读写分离。
在本发明中,Reporter:通过读取配置文件,获取数据库连接信息,定时读取数据库中工程列表信息,将该数据库的连接信息及工程列表信息通知Database Router。除此之外此模块负责分库分表相关部署,分库分表包含以下情况,单库单表、单库多表以及多库多表等。在进行分库分表时需考虑维度问题,联合查询问题,跨库事物的判断等。根据具体施工数据量进行判别:1.数据量在1000万以下的表,不建议分库,可以通过建立合适索引解决性能问题。2.数据量在1000万以上的表,建议分库,需要选择合适的拆分键。3.业务读取少用多表JOIN,同一事物避免跨分片。4.查询条件需要有拆分键,避免全分片扫描。5.在设计中尽量把同一组数据放到同一台DB服务器上。6.分片是解决数据库存储容量限制的直接途径,包括垂直分片和水平分片两种方式。
本发明中Database Router功能模块:Database Router为分布式数据库中的重要模块,路由分发与水平分片同为DDM的基础功能,在分布式数据库中,路由的作用即将SQL语句进行解析,并转发到正确的分片上,保证SQL执行后得到正确的结果,并且节约QPS资源。除此之外,该模块获取Reporter报告的信息并实时维护,具体表现在以下两个方面:(1)获取特定工程的数据库连接信息其他模块发送工程信息,请求获取数据库连接信息,Database Router根据实时维护的信息列表查找对应的工程数据库连接信息,发送给请求者,请求者根据数据库连接信息,直接创建数据库连接,访问数据库。(2)新建工程时的数据库连接分配;新建工程时,需要Database Router自动分配数据库,当请求分配数据库时,Database Router根据适当的规则(如各数据库中的工程数量),动态分配数据库。DatabaseRouter消息分发时,引入了消息中心机制,他负责生产者的消息(PC)投递和消费者(Application)的消费,消息中心开放监听端口,消息发布者和消费者通过各自的TCP处理通道,来发布和订阅消息,消息接口统一,在拉取时,根据接口进行自动配对,通过监听各应用处理服务器的性能,来达到负载均衡的目的。本质上是将客户端和服务器端服务的直接通信过程,通过消息中心进行了分解,将一个同步的过程变成了异步的过程。
以上对本发明的较佳实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例,这并不影响本发明的实质内容。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

Claims (5)

1.一种基于MySql的数据分布式储存系统,其特征在于,包括以下步骤:
步骤(1):对分布式部署进行配置;
步骤(2):数据库集群采用主从分离模式;
步骤(3):通过读取配置文件,获取数据库连接信息,定时读取数据库中工程列表信息,将该数据库的连接信息及工程列表信息通知Database Router;
步骤(4):将SQL语句进行解析,并转发到正确的分片上,保证SQL执行后得到正确的结果,并且节约QPS资源。
2.如权利要求1所示的一种基于MySql的数据分布式储存系统,其特征在于,所述步骤(1)包括:
步骤(1.1):主服务器:开启二进制日志;配置唯一的server-id;获得master二进制日志文件名及位置;创建一个用于slave和master通信的用户账号;
步骤(1.2):从服务器:配置唯一的server-id;使用master分配的用户账号读取master二进制日志;启用slave服务。
3.如权利要求2所示的一种基于MySql的数据分布式储存系统,其特征在于,所述步骤(2)包括:每一个PC机器配置Master主库、Slave从库及Reporter模块,其中Master主库负责用户Application的增、删、改请求,Slave从库负责用户Application的读请求,实现主从分离、读写分离。
4.如权利要求3所示的一种基于MySql的数据分布式储存系统,其特征在于,所述步骤(3)具体包括:通过读取配置文件,获取数据库连接信息,定时读取数据库中工程列表信息,将该数据库的连接信息及工程列表信息通知Database Router。
5.如权利要求4所示的一种基于MySql的数据分布式储存系统,其特征在于,所述步骤(4)具体包括:
步骤(4.1):获取特定工程的数据库连接信息;
步骤(4.2):新建工程时的数据库连接分配。
CN201811293211.3A 2018-11-01 2018-11-01 一种基于MySql的数据分布式储存系统 Pending CN109471861A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811293211.3A CN109471861A (zh) 2018-11-01 2018-11-01 一种基于MySql的数据分布式储存系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811293211.3A CN109471861A (zh) 2018-11-01 2018-11-01 一种基于MySql的数据分布式储存系统

Publications (1)

Publication Number Publication Date
CN109471861A true CN109471861A (zh) 2019-03-15

Family

ID=65672407

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811293211.3A Pending CN109471861A (zh) 2018-11-01 2018-11-01 一种基于MySql的数据分布式储存系统

Country Status (1)

Country Link
CN (1) CN109471861A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489092A (zh) * 2019-08-27 2019-11-22 四川长虹电器股份有限公司 一种数据库读写分离架构下读取数据延迟问题的解决方法
CN110489490A (zh) * 2019-08-23 2019-11-22 上海新炬网络信息技术股份有限公司 基于分布式数据库的数据存储和查询方法
CN111241981A (zh) * 2020-01-07 2020-06-05 武汉旷视金智科技有限公司 视频结构化系统
CN112084267A (zh) * 2020-07-29 2020-12-15 北京思特奇信息技术股份有限公司 解决分布式数据库全局广播的方法
CN112131245A (zh) * 2020-09-23 2020-12-25 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 拟态防御架构的高性能数据访问系统及方法
CN112269835A (zh) * 2020-11-10 2021-01-26 浪潮云信息技术股份公司 一种分布式数据库异步读取并处理批量数据的方法
CN112925841A (zh) * 2021-03-26 2021-06-08 瀚高基础软件股份有限公司 分布式jdbc实现方法、设备及计算机可读存储介质
CN113641670A (zh) * 2021-07-09 2021-11-12 北京百度网讯科技有限公司 数据存储及数据检索方法、装置、电子设备及存储介质
CN117453648A (zh) * 2023-10-08 2024-01-26 广州新赫信息科技有限公司 基于可信链高性能关系型数据库构建方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702698B1 (en) * 2005-03-01 2010-04-20 Yahoo! Inc. Database replication across different database platforms
CN102591964A (zh) * 2011-12-30 2012-07-18 北京新媒传信科技有限公司 数据读写分离机制的实现方法和装置
CN102622427A (zh) * 2012-02-27 2012-08-01 杭州闪亮科技有限公司 读写分离数据库的方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702698B1 (en) * 2005-03-01 2010-04-20 Yahoo! Inc. Database replication across different database platforms
CN102591964A (zh) * 2011-12-30 2012-07-18 北京新媒传信科技有限公司 数据读写分离机制的实现方法和装置
CN102622427A (zh) * 2012-02-27 2012-08-01 杭州闪亮科技有限公司 读写分离数据库的方法及系统

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489490B (zh) * 2019-08-23 2022-11-29 上海新炬网络信息技术股份有限公司 基于分布式数据库的数据存储和查询方法
CN110489490A (zh) * 2019-08-23 2019-11-22 上海新炬网络信息技术股份有限公司 基于分布式数据库的数据存储和查询方法
CN110489092A (zh) * 2019-08-27 2019-11-22 四川长虹电器股份有限公司 一种数据库读写分离架构下读取数据延迟问题的解决方法
CN110489092B (zh) * 2019-08-27 2022-08-16 四川长虹电器股份有限公司 一种数据库读写分离架构下读取数据延迟问题的解决方法
CN111241981A (zh) * 2020-01-07 2020-06-05 武汉旷视金智科技有限公司 视频结构化系统
CN112084267A (zh) * 2020-07-29 2020-12-15 北京思特奇信息技术股份有限公司 解决分布式数据库全局广播的方法
CN112084267B (zh) * 2020-07-29 2024-06-07 北京思特奇信息技术股份有限公司 解决分布式数据库全局广播的方法
CN112131245A (zh) * 2020-09-23 2020-12-25 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 拟态防御架构的高性能数据访问系统及方法
CN112269835A (zh) * 2020-11-10 2021-01-26 浪潮云信息技术股份公司 一种分布式数据库异步读取并处理批量数据的方法
CN112925841A (zh) * 2021-03-26 2021-06-08 瀚高基础软件股份有限公司 分布式jdbc实现方法、设备及计算机可读存储介质
CN112925841B (zh) * 2021-03-26 2022-11-08 瀚高基础软件股份有限公司 分布式jdbc实现方法、设备及计算机可读存储介质
CN113641670B (zh) * 2021-07-09 2023-08-11 北京百度网讯科技有限公司 数据存储及数据检索方法、装置、电子设备及存储介质
CN113641670A (zh) * 2021-07-09 2021-11-12 北京百度网讯科技有限公司 数据存储及数据检索方法、装置、电子设备及存储介质
CN117453648A (zh) * 2023-10-08 2024-01-26 广州新赫信息科技有限公司 基于可信链高性能关系型数据库构建方法

Similar Documents

Publication Publication Date Title
CN109471861A (zh) 一种基于MySql的数据分布式储存系统
CN110209726B (zh) 分布式数据库集群系统、数据同步方法及存储介质
CN102033912A (zh) 一种分布式数据库访问方法及系统
EP2954424B1 (en) Method, device, and system for peer-to-peer data replication and method, device, and system for master node switching
US11263236B2 (en) Real-time cross-system database replication for hybrid-cloud elastic scaling and high-performance data virtualization
CN110175213A (zh) 一种基于SCN方式的Oracle数据库同步系统及方法
CN103595799B (zh) 一种实现分布式共享数据库的方法
WO2018036324A1 (zh) 一种智慧城市信息共享的方法和装置
CN103605698A (zh) 一种用于分布异构数据资源整合的云数据库系统
CN105069109B (zh) 一种分布式数据库扩容的方法和系统
CN102098342A (zh) 一种基于事务级的数据同步方法、装置及系统
CN112199427A (zh) 一种数据处理方法和系统
CN109840166A (zh) 一种跨集群对象存储异步备份方法、装置和系统
JP7549137B2 (ja) トランザクション処理方法、システム、装置、機器、及びプログラム
CN106953910A (zh) 一种Hadoop计算存储分离方法
CN103345502A (zh) 分布式数据库的事务处理方法和系统
CN103150304A (zh) 云数据库系统
CN104050276A (zh) 一种分布式数据库的缓存处理方法及系统
CN104765661A (zh) 一种云存储服务中元数据服务节点的多节点热备方法
US20150046394A1 (en) Storage system, storage control device, and storage medium storing control program
CN109933312A (zh) 一种有效降低容器化关系型数据库i/o消耗的方法
CN108536833A (zh) 一种分布式、面向大数据的数据库及其构建方法
US11226986B2 (en) Data table partitioning management method and apparatus
CN105786877B (zh) 一种数据存储方法、系统及查询方法
CN106257424A (zh) 一种基于kvm云平台的分布式数据库系统实现自动伸缩负载均衡的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190315