CN113254275A - 一种基于分布式块设备的MySQL高可用架构方法 - Google Patents
一种基于分布式块设备的MySQL高可用架构方法 Download PDFInfo
- Publication number
- CN113254275A CN113254275A CN202110560958.6A CN202110560958A CN113254275A CN 113254275 A CN113254275 A CN 113254275A CN 202110560958 A CN202110560958 A CN 202110560958A CN 113254275 A CN113254275 A CN 113254275A
- Authority
- CN
- China
- Prior art keywords
- mysql
- server
- distributed block
- master
- processor
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000010076 replication Effects 0.000 claims description 14
- 238000012544 monitoring process Methods 0.000 claims description 7
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008439 repair process Effects 0.000 claims description 4
- 238000013459 approach Methods 0.000 claims description 3
- 230000009977 dual effect Effects 0.000 claims description 2
- 238000013523 data management Methods 0.000 claims 1
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000008859 change Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2033—Failover techniques switching over of hardware resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Abstract
本发明提供了一种基于分布式块设备的MySQL高可用架构方法,采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,通过DRBD工具保证数据的一致性;默认情况下只有一台MySQL在工作,当主MySQL服务器出现问题后,系统将自动切换到备机上继续提供服务,当主数据库修复完毕,又将服务切回继续由主MySQL提供服务。本发明有益效果:一种基于分布式块设备的MySQL高可用架构方法采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,数据的一致性由DRBD这个工具来保证,默认情况下只有一台MySQL在工作,当主MySQL服务器出现问题后,系统将自动切换到备机上继续提供服务,当主数据库修复完毕,又将服务切回继续由主MySQL提供服务。
Description
技术领域
本发明属于MySQL领域,尤其是涉及一种基于分布式块设备的MySQL高可用架构方法。
背景技术
目前MySQL的高可用方案大多采用主从同步(master-salve)或者主主同步(master-master),同步基于二进制日志机制,主服务器使用二进制日志来记录数据库的变动情况,从服务器通过读取和执行该日志文件来保持和主服务器的数据一致。基于二进制日志同步的的特点:1、通过增加从服务器来提高数据库的性能,在主服务器上执行写入和更新,在从服务器上向外提供读功能,可以动态地调整从服务器的数量,从而调整整个数据库的性能;2、提高数据安全-因为数据已复制到从服务器,从服务器可以终止复制进程,所以,可以在从服务器上备份而不破坏主服务器相应数据;3、在主服务器上生成实时数据,而在从服务器上分析这些数据,从而提高主服务器的性能;上述方案目前存在一些局限性:虽然主从复制增加了一个数据库副本,从数据库和主数据库的数据最终会是一致的。之所以说是最终一致,因为MySQL复制是异步的,正常情况下主从复制数据之间会有一个微小的延迟。另外通过这个数据库副本看似解决了数据库单点问题,但并不完美:因为这种架构下,如果主服务器宕机,需要手动切换从服务器,业务中断不能立即恢复或者切换,无法满足应用高可用的要求。
发明内容
有鉴于此,本发明旨在提出一种基于分布式块设备的MySQL高可用架构方法,以解决上述问题中的不足之处。
为达到上述目的,本发明的技术方案是这样实现的:
一种基于分布式块设备的MySQL高可用架构方法,包括主机和备机,主机和备机均采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,通过DRBD工具保证数据的一致性;
默认情况下只有一台主MySQL服务器在工作,当主MySQL服务器出现问题后,系统将自动切换到备MySQL服务器上继续提供服务,当主MySQL服务器修复完毕,又将服务切回继续由主MySQL服务器提供服务。
进一步的,Heartbeat主要功能是心跳监测和资源接管,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未受到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务。
进一步的,通过DRBD实现在网络中两台服务器之间基于块设备级别的实时镜像或同步复制/异步复制,相当于网络的RAID1。
进一步的,主MySQL服务器出现问题包括:主数据库服务出现了异常重启、服务器系统重启、网络连接出现断开;
当主服务器的服务正常启动,网络修复则表示主数据库修复完毕。
进一步的,所述同步复制为两台服务器都写入成功,所述异步复制为本地服务器写入成功。
进一步的,运行两台MySQL数据库,其数据运行云DRBD上,client端均通过VIP进行访问,Master/Slave之间使用Hearbeat的心跳检查彼此是否处于Active/Dead状态,当Master dead状态成立,heartbeat会将Slave升级为Master,挂载Disk资源池,启动MySQL,用于实现整个流程的完全自动化切换。
进一步的,down time时间可以依照网络环境进行调整。
一种电子设备,包括处理器以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器用于执行上述一种基于分布式块设备的MySQL高可用架构方法。
一种服务器,包括至少一个处理器,以及与所述处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,以使所述至少一个处理器执行一种基于分布式块设备的MySQL高可用架构方法。
一种计算机可读取存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现一种基于分布式块设备的MySQL高可用架构方法。
相对于现有技术,本发明所述的一种基于分布式块设备的MySQL高可用架构方法具有以下有益效果:
本发明所述的一种基于分布式块设备的MySQL高可用架构方法采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,数据的一致性由DRBD这个工具来保证,默认情况下只有一台MySQL在工作,当主MySQL服务器出现问题后,系统将自动切换到备机上继续提供服务,当主数据库修复完毕,又将服务切回继续由主MySQL提供服务。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所述的一种基于分布式块设备的MySQL高可用架构方法示意图;
图2为本发明实施例所述的现有技术的同步机制示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面将参考附图并结合实施例来详细说明本发明。
目前MySQL的高可用方案大多采用主从同步(master-salve)或者主主同步(master-master),同步基于二进制日志机制,主服务器使用二进制日志来记录数据库的变动情况,从服务器通过读取和执行该日志文件来保持和主服务器的数据一致。具体操作流程如下:
(1)master服务器将数据的改变记录二进制binlog日志,当master上的数据发生改变时,则将其改变写入二进制日志中。
(2)slave服务器会在一定时间间隔内对master二进制日志进行探测其是否发生改变,如果发生改变,则开始一个I/OThread请求master二进制事件。
(3)同时主节点为每个I/O线程启动一个dump线程,用于向其发送二进制事件,并保存至从节点本地的中继日志中,从节点将启动SQL线程从中继日志中读取二进制日志,在本地重放,使得其数据和主节点的保持一致,最后I/OThread和SQLThread将进入睡眠状态,等待下一次被唤醒。
同步机制示例图如图2所示,基于二进制日志同步的的特点:
1.通过增加从服务器来提高数据库的性能,在主服务器上执行写入和更新,在从服务器上向外提供读功能,可以动态地调整从服务器的数量,从而调整整个数据库的性能;
2.提高数据安全-因为数据已复制到从服务器,从服务器可以终止复制进程,所以,可以在从服务器上备份而不破坏主服务器相应数据;
3.在主服务器上生成实时数据,而在从服务器上分析这些数据,从而提高主服务器的性能;
目前存在一些局限性:
虽然主从复制增加了一个数据库副本,从数据库和主数据库的数据最终会是一致的,之所以说是最终一致,因为MySQL复制是异步的,正常情况下主从复制数据之间会有一个微小的延迟,另外通过这个数据库副本看似解决了数据库单点问题,但并不完美:因为这种架构下,如果主服务器宕机,需要手动切换从服务器,业务中断不能立即恢复或者切换,无法满足应用高可用的要求。
一种基于分布式块设备的MySQL高可用架构方法,采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,通过DRBD工具保证数据的一致性;
默认情况下只有一台MySQL在工作,当主MySQL服务器出现问题后,系统将自动切换到备机上继续提供服务,当主数据库修复完毕,又将服务切回继续由主MySQL提供服务。
Heartbeat主要功能是心跳监测和资源接管,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未受到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务。
通过DRBD实现在网络中两台服务器之间基于块设备级别的实时镜像或同步复制/异步复制,相当于网络的RAID1。
所述同步复制为两台服务器都写入成功,所述异步复制为本地服务器写入成功。
运行两台MySQL数据库,其数据运行云DRBD上,client端均通过VIP进行访问,Master/Slave之间使用Hearbeat的心跳检查彼此是否处于Active/Dead状态,当Masterdead状态成立,heartbeat会将Slave升级为Master,挂载Disk资源池,启动MySQL,用于实现整个流程的完全自动化切换。
down time时间可以依照网络环境进行调整。
一种电子设备,包括处理器以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器用于执行上述一种基于分布式块设备的MySQL高可用架构方法。
一种服务器,包括至少一个处理器,以及与所述处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,以使所述至少一个处理器执行一种基于分布式块设备的MySQL高可用架构方法。
一种计算机可读取存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现一种基于分布式块设备的MySQL高可用架构方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和系统,可以通过其它的方式实现。例如,以上所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。上述单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于分布式块设备的MySQL高可用架构方法,其特征在于:包括主机和备机,主机和备机均采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,通过DRBD工具保证数据的一致性;
默认情况下只有一台主MySQL服务器在工作,当主MySQL服务器出现问题后,系统将自动切换到备MySQL服务器上继续提供服务,当主MySQL服务器修复完毕,又将服务切回继续由主MySQL服务器提供服务。
2.根据权利要求1所述的一种基于分布式块设备的MySQL高可用架构方法,其特征在于:Heartbeat主要功能是心跳监测和资源接管,心跳监测通过网络链路和串口进行,且支持冗余链路,主服务器和从服务器之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未受到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务。
3.根据权利要求1所述的一种基于分布式块设备的MySQL高可用架构方法,其特征在于:通过DRBD实现在网络中两台服务器之间基于块设备级别的实时镜像或同步复制/异步复制,相当于网络的RAID1。
4.根据权利要求1所述的一种基于分布式块设备的MySQL高可用架构方法,其特征在于,主MySQL服务器出现问题包括:主数据库服务出现了异常重启、服务器系统重启、网络连接出现断开;
当主服务器的服务正常启动,网络修复则表示主数据库修复完毕。
5.根据权利要求3所述的一种基于分布式块设备的MySQL高可用架构方法,其特征在于:所述同步复制为两台服务器都写入成功,所述异步复制为本地服务器写入成功。
6.根据权利要求3所述的一种基于分布式块设备的MySQL高可用架构方法,其特征在于:运行两台MySQL数据库,其数据运行云DRBD上,client端均通过VIP进行访问,Master/Slave之间使用Hearbeat的心跳检查彼此是否处于Active/Dead状态,当Master dead状态成立,heartbeat会将Slave升级为Master,挂载Disk资源池,启动MySQL,用于实现整个流程的完全自动化切换。
7.根据权利要求6所述的一种基于分布式块设备的MySQL高可用架构方法,其特征在于:down time时间可以依照网络环境进行调整。
8.一种电子设备,包括处理器以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,其特征在于:所述处理器用于执行上述权利要求1-7任一所述的一种基于分布式块设备的MySQL高可用架构方法。
9.一种服务器,其特征在于:包括至少一个处理器,以及与所述处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,以使所述至少一个处理器执行如权利要求1-7任一所述的一种基于分布式块设备的MySQL高可用架构方法。
10.一种计算机可读取存储介质,存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1-7任一项所述的一种基于分布式块设备的MySQL高可用架构方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110560958.6A CN113254275A (zh) | 2021-05-20 | 2021-05-20 | 一种基于分布式块设备的MySQL高可用架构方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110560958.6A CN113254275A (zh) | 2021-05-20 | 2021-05-20 | 一种基于分布式块设备的MySQL高可用架构方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113254275A true CN113254275A (zh) | 2021-08-13 |
Family
ID=77183865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110560958.6A Pending CN113254275A (zh) | 2021-05-20 | 2021-05-20 | 一种基于分布式块设备的MySQL高可用架构方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254275A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113849351A (zh) * | 2021-09-30 | 2021-12-28 | 紫光云技术有限公司 | 一种MySQL高可用性的实现方法 |
CN116880401A (zh) * | 2023-07-28 | 2023-10-13 | 江苏道达智能科技有限公司 | 一种自动化立体仓库控制系统及方法 |
CN117035281A (zh) * | 2023-07-19 | 2023-11-10 | 江苏道达智能科技有限公司 | 一种基于amhs设备的物流管理系统及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679907A (zh) * | 2015-03-24 | 2015-06-03 | 新余兴邦信息产业有限公司 | 高可用高性能数据库集群的实现方法及系统 |
CN108710621A (zh) * | 2018-03-12 | 2018-10-26 | 广东睿江云计算股份有限公司 | 一种基于ceph实现MySQL数据库水平扩展的方法 |
-
2021
- 2021-05-20 CN CN202110560958.6A patent/CN113254275A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679907A (zh) * | 2015-03-24 | 2015-06-03 | 新余兴邦信息产业有限公司 | 高可用高性能数据库集群的实现方法及系统 |
US20160283335A1 (en) * | 2015-03-24 | 2016-09-29 | Xinyu Xingbang Information Industry Co., Ltd. | Method and system for achieving a high availability and high performance database cluster |
CN108710621A (zh) * | 2018-03-12 | 2018-10-26 | 广东睿江云计算股份有限公司 | 一种基于ceph实现MySQL数据库水平扩展的方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113849351A (zh) * | 2021-09-30 | 2021-12-28 | 紫光云技术有限公司 | 一种MySQL高可用性的实现方法 |
CN117035281A (zh) * | 2023-07-19 | 2023-11-10 | 江苏道达智能科技有限公司 | 一种基于amhs设备的物流管理系统及方法 |
CN116880401A (zh) * | 2023-07-28 | 2023-10-13 | 江苏道达智能科技有限公司 | 一种自动化立体仓库控制系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11360854B2 (en) | Storage cluster configuration change method, storage cluster, and computer system | |
US9747301B2 (en) | Distributed file system using consensus nodes | |
US9785691B2 (en) | Method and apparatus for sequencing transactions globally in a distributed database cluster | |
US5129080A (en) | Method and system increasing the operational availability of a system of computer programs operating in a distributed system of computers | |
CN113254275A (zh) | 一种基于分布式块设备的MySQL高可用架构方法 | |
US6823474B2 (en) | Method and system for providing cluster replicated checkpoint services | |
US8856091B2 (en) | Method and apparatus for sequencing transactions globally in distributed database cluster | |
CN105830033B (zh) | 用于在分布式数据网格中支持持久存储装置版本化和完整性的系统和方法 | |
US20080162812A1 (en) | Distributed storage array | |
CN106776121B (zh) | 一种数据灾备装置、系统及方法 | |
GB2484086A (en) | Reliability and performance modes in a distributed storage system | |
CN105493474B (zh) | 用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法 | |
KR20110044858A (ko) | 데이터 센터들에 걸쳐 데이터 서버들내 데이터 무결정의 유지 | |
CN110727709A (zh) | 一种集群数据库系统 | |
CN115794499B (zh) | 一种用于分布式块存储集群间双活复制数据的方法和系统 | |
US9396076B2 (en) | Centralized version control system having high availability | |
CN110825763B (zh) | 基于共享存储的MySQL数据库高可用系统及其高可用方法 | |
CN115878384A (zh) | 一种基于备份容灾系统的分布式集群及构建方法 | |
US20040210888A1 (en) | Upgrading software on blade servers | |
CN113326251B (zh) | 数据管理方法、系统、设备和存储介质 | |
CN109726211B (zh) | 一种分布式时序数据库 | |
CN107357800A (zh) | 一种数据库高可用零丢失解决方法 | |
CN112783694B (zh) | 一种高可用Redis的异地灾备方法 | |
JP2005055995A (ja) | ストレージ制御方法、および、冗長化機能を有するサーバシステム | |
CN115292408A (zh) | MySQL数据库的主从同步方法、装置、设备及介质 |
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: 20210813 |