CN102663017A - 增强MySQL数据库可用性的实现系统及实现方法 - Google Patents
增强MySQL数据库可用性的实现系统及实现方法 Download PDFInfo
- Publication number
- CN102663017A CN102663017A CN2012100760142A CN201210076014A CN102663017A CN 102663017 A CN102663017 A CN 102663017A CN 2012100760142 A CN2012100760142 A CN 2012100760142A CN 201210076014 A CN201210076014 A CN 201210076014A CN 102663017 A CN102663017 A CN 102663017A
- Authority
- CN
- China
- Prior art keywords
- virtual
- address
- node
- database
- node server
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及增强MySQL数据库可用性的实现系统及实现方法,在MySQL传统复制特性的基础上实现双向读写和双向同步,提高数据库的读写并发能力,通过搭配应用开源软件keepalived,实现MySQL数据库服务的故障自动切换,保障MySQL数据库服务的高可用。
Description
技术领域
本发明涉及MySQL数据库,特别是涉及一种增强MySQL数据库可用性的实现系统及实现方法。
背景技术
MYSQL被广泛应用在许多中小型网站中,MYSQL数据库的管理显得尤为重要,如何保证数据库持续稳定的运行已成为需要解决的问题。目前比较流行的解决方案是MYSQL技术文档中提供的方案,基于第三方开源软件DRBD和HEARTBEAT实现,其中DRBD负责在两个节点间数据的同步,HEARTBEAT提供前端应用连接的虚拟IP,当正在对外提供服务的节点出现故障时,HEARTBEAT能够自动将虚拟IP切换到正常的节点上,使MySQL数据库始终保持能够对外提供服务,具体实现方式为:
1).在两个服务器节点中创建DRBD共享盘;
2).创建MySQL数据库,并将MySQL的数据文件存储于DRBD的共享盘,由DRBD负责数据在两个服务器节点间的同步;
3).配置HEARTBEAT服务,对外提供虚拟IP和控制MYSQL服务的启动;
4).HEARTBEAT定时检测MySQL数据库服务的状态,当发现异常时执行三项操作:
a)将虚拟VIP飘移至活动的节点;
b)将活动的节点端DRBD共享盘角色修改为Primary;
c)在活动的节点端启动MySQL数据库服务。
这种方案能够实现故障自动切换,但是缺点也非常明显,主要缺点在于两台节点同时只有一台对外提供服务,另外一台处于备用状态,相当于有一半资源被浪费。
发明内容
本发明在于避免以上现有技术的不足,提出一种增强MySQL数据库可用性的实现系统及实现方法。
本发明的目的通过以下技术方案来实现:
一种增强MySQL数据库可用性的实现系统,该系统包括:
双向异步复制模块,用于使多个节点服务器中的MySQL数据库服务互为主从,各台节点服务器的数据库均可以同时接受前端应用的读写请求,并且相互间保持数据一致;
虚拟IP模块:提供一个或多个虚拟IP,使得前端应用在节点服务器数据库发生故障时通过虚拟IP来访问节点服务器;
数据库服务监控模块:当持有虚拟IP的节点服务器发生故障时,能自动将虚拟IP移至仍处于工作状态的数据库服务器,以使前端应用无须做任何修改,以此保证整个数据库服务的高可用性。
一种增强MySQL数据库可用性的实现方法,该方法包括如下步骤:
1)双向异步复制模块对某一个节点服务器进行系统设置;
2)双向异步复制模块根据步骤1中对节点服务器的设置对另一个/些节点服务器进行相同或相应的系统设置;
3)数据库服务监控模块持续不断监控系统运行状态,确定本地数据库对外提供服务的端口正常工作;
4)客户端对节点服务器进行访问时,始终访问由虚拟IP模块提供的访问IP,虚拟IP模块决定虚拟IP绑定到状态正常的某一个节点服务器;
5)当绑定虚拟IP的节点发生故障时,数据库服务监控模块触发虚拟IP模块,将虚拟IP重新绑定到与待访问的节点服务器具有相同配置的另一个节点服务器;
进一步,所述步骤1对某一个节点服务器进行系统设置是指对节点服务器的控制自增列起始值和偏移量以及服务标识ID进行设置。
进一步,所述步骤2对另一个节点服务器进行系统设置是指对节点服务器的控制自增列起始值和偏移量以及服务标识ID进行设置。
本发明的优点在于:
1)在不停止数据库服务的前提下,实现数据库软件的版本升级;
2)易于大数据量迁移方案的设计和实施;
3)实现大对象的结构变更(包含增/删列或修改表索引);
4)自动故障切换的高可用体系;
5)易伸缩性,方便实现系统快速扩容,以应用大负载压力的情况。
附图说明
图1:本发明系统结构示意图;
图2:本发明实现方法流程图;
图3:本发明具体实施例图。
具体实施方式
如图1所示为本发明一种增强MySQL数据库可用性的实现系统结构示意图,该系统包括双向异步复制模块1,用于使多个节点服务器中的MySQL数据库服务互为主从,各台节点服务器的数据库均可以同时接受前端应用的读写请求,并且相互间保持数据一致。虚拟IP模块2,提供一个或多个虚拟IP,使得前端应用在节点服务器数据库发生故障时通过虚拟IP来访问节点服务器。数据库服务监控模块3,当持有虚拟IP的节点服务器发生故障时,能自动将虚拟IP移至仍处于工作状态的数据库服务器,以使前端应用无须做任何修改,以此保证整个数据库服务的高可用性。
如图2为本发明实现方法的流程图。一种增强MySQL数据库可用性的实现方法包括如下步骤:
1)双向异步复制模块对某一个节点服务器进行系统设置;
2)双向异步复制模块根据步骤1中对节点服务器的设置对另一个/些节点服务器进行相同或相应的系统设置;
3)数据库服务监控模块持续不断监控系统运行状态,确定本地数据库对外提供服务的端口正常工作;
4)客户端对节点服务器进行访问时,始终访问由虚拟IP模式提供的访问IP,虚拟IP模块决定虚拟IP绑定到状态正常的某一个节点服务器;
5)当绑定虚拟IP的节点发生故障时,数据库服务监控模块触发虚拟IP模式,将虚拟IP重新绑定到与待访问的节点服务器具有相同配置的另一个节点服务器。
如图3所示为本发明具体实施例图,本实施例中以节点服务器A和B为例对增强MySQL数据库可用性的实现方法做详细说明。具体实施步骤如下:
1)双向异步复制模块对某一个节点服务器进行系统设置,即是指对节点服务器的控制自增列起始值和偏移量以及服务标识ID进行设置。
按照标准方式创建MySQL主从复制环境,为避免双向同时读写相同对象时的自增值不重复,必须对自增类型的起始值和偏移量进行设置。首先对节点服务器A和B进行配置。
■节点A端配置控制自增列起始值和偏移量的初始化参数如下:
◆auto_increment_increment=2
◆auto_increment_offset=1
■节点A端配置log_slave_update参数,记录本地slave应用的操作日志;
■节点A端启用MySQL BINLOG日志,并在MySQL数据库中创建专用复制帐户;
■节点B端使用前面创建的复制帐户,执行CHANGE MASTER命令连接至节点A;
■节点B端执行START SLAVE启动日志应用线程。
2)双向异步复制模块根据步骤1中对节点服务器的设置对另一个/些节点服务器进行相同或相应的系统设置。
上述步骤实现了传统的MySQL主从节点复制,接下来需要继续对主节点A和B执行操作,使当前架构变成互为主从的双向复制结构。
■节点B端配置控制自增列起始值和偏移量的初始化参数如下:
◆auto_increment_increment=2
◆auto_increment_offset=2
■节点B端配置log_slave_update参数,记录本地slave应用的操作日志;
■节点B端启用MySQL BINLOG日志,并创建专用复制帐户;
■节点A端使用前面创建的复制帐户,执行CHANGE MASTER命令连接至节点B;
■节点A端执行START SLAVE启动日志应用线程。
MySQL双向dual-master复制的配置至此完成,此时A/B两端均可执行读写操作,各自所做的操作均能传输至目标端并被应用,保持两端数据一致。
3)数据库服务监控模块持续不断监控系统运行状态,确定本地数据库对外提供服务的端口正常工作。
接下来配置MySQL状态监控模块,该模块的实现方式非常简单,通过mysql命令行工具访问本地数据库对外提供服务的端口(默认为3306),若连接失败,则停止本地的keepalived服务,将本功能封装至SHELL脚本文件,有待Keepalived调用。
4)客户端对节点服务器进行访问时,始终访问由虚拟IP模式提供的访问IP,虚拟IP模块决定虚拟IP绑定到状态正常的某一个节点服务器;
此时配置Keepalived虚拟IP模块,一般由第三方的开源软件keepalived提供虚拟IP,该软件在A/B两端均需要进行配置,配置的重点有两方面,一个是调用mysql状态监控脚本,配置如下:
vrrp_script check_run{
script″/usr/local/keepalived/bin/ka_check_mysql.sh″
interval 10
}
另一个则是配置主从身份的检测:
state BACKUP
virtual_router_id 50
priority 90
而后启动keepalived服务。
5)当绑定虚拟IP的节点发生故障时,数据库服务监控模块触发虚拟IP模式,将虚拟IP重新绑定到与待访问的节点服务器具有相同配置的另一个节点服务器。
如数据库软件版本升级、对象的结构变更、大数据量迁移方案的实施等均可按照上述步骤实施。
本发明一种增强MySQL数据库可用性的实现系统及实现方法,在MySQL传统复制特性的基础上实现双向读写和双向同步,提高数据库的读写并发能力,通过搭配应用开源软件keepalived,实现MySQL数据库服务的故障自动切换,保障MySQL数据库服务的高可用。
应当理解,以上借助优选实施例对本发明的技术方案进行的详细说明是示意性的而非限制性的。本领域的普通技术人员在阅读本发明说明书的基础上可以对各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (4)
1.增强MySQL数据库可用性的实现系统,其特征在于,该系统包括:
双向异步复制模块,用于使多个节点服务器中的MySQL数据库服务互为主从,各台节点服务器的数据库均可以同时接受前端应用的读写请求,并且相互间保持数据一致;
虚拟IP模块:提供一个或多个虚拟IP,使得前端应用在节点服务器数据库发生故障时通过虚拟IP来访问节点服务器;
数据库服务监控模块:当持有虚拟IP的节点服务器发生故障时,能自动将虚拟IP移至仍处于工作状态的数据库服务器,以使前端应用无须做任何修改,以此保证整个数据库服务的高可用性。
2.增强MySQL数据库可用性的实现方法,其特征在于,该方法包括如下步骤:
1)双向异步复制模块对某一个节点服务器进行系统设置;
2)双向异步复制模块根据步骤1中对节点服务器的设置对另一个/些节点服务器进行相同或相应的系统设置;
3)数据库服务监控模块持续不断监控系统运行状态,确定本地数据库对外提供服务的端口正常工作;
4)客户端对节点服务器进行访问时,始终访问由虚拟IP模块提供的访问IP,虚拟IP模块决定虚拟IP绑定到状态正常的某一个节点服务器;
5)当绑定虚拟IP的节点发生故障时,数据库服务监控模块触发虚拟IP模块,将虚拟IP重新绑定到与待访问的节点服务器具有相同配置的另一个节点服务器。
3.根据权利要求2所述的增强MySQL数据库可用性的实现方法,其特征在于,所述步骤1对某一个节点服务器进行系统设置是指对节点服务器的控制自增列起始值和偏移量以及服务标识ID进行设置。
4.根据权利要求2所述的增强MySQL数据库可用性的实现方法,其特征在于,所述步骤2对另一个节点服务器进行系统设置是指对节点服务器的控制自增列起始值和偏移量以及服务标识ID进行设置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100760142A CN102663017A (zh) | 2012-03-21 | 2012-03-21 | 增强MySQL数据库可用性的实现系统及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100760142A CN102663017A (zh) | 2012-03-21 | 2012-03-21 | 增强MySQL数据库可用性的实现系统及实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102663017A true CN102663017A (zh) | 2012-09-12 |
Family
ID=46772508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100760142A Pending CN102663017A (zh) | 2012-03-21 | 2012-03-21 | 增强MySQL数据库可用性的实现系统及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102663017A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559188A (zh) * | 2013-08-19 | 2014-02-05 | 曙光信息产业股份有限公司 | 元数据管理方法及管理系统 |
CN103973424A (zh) * | 2014-05-22 | 2014-08-06 | 乐得科技有限公司 | 缓存系统中的故障解决方法和设备 |
CN104679604A (zh) * | 2015-02-12 | 2015-06-03 | 大唐移动通信设备有限公司 | 一种主节点和备节点切换的方法和装置 |
CN104765653A (zh) * | 2015-02-15 | 2015-07-08 | 杭州米加科技有限公司 | 一种使用keepalived软件实现数据库HA应用的方法 |
CN104765889A (zh) * | 2015-04-30 | 2015-07-08 | 北京奇虎科技有限公司 | 基于数据库高可用框架的切换方法及装置 |
CN105205182A (zh) * | 2015-10-28 | 2015-12-30 | 北京奇虎科技有限公司 | 多机房部署系统及跨机房的业务数据处理方法 |
CN105227353A (zh) * | 2015-09-06 | 2016-01-06 | 深圳市华验防伪科技有限公司 | 一种mysql集群实现方法及系统 |
CN106341492A (zh) * | 2016-10-19 | 2017-01-18 | 杭州赛客网络科技有限公司 | 基于云通讯服务的分布式内存数据存储和读取方法 |
CN110730221A (zh) * | 2019-09-26 | 2020-01-24 | 上海易点时空网络有限公司 | 基于多节点搭建高可用的mysql架构的方法及系统 |
CN112328581A (zh) * | 2020-12-30 | 2021-02-05 | 望海康信(北京)科技股份公司 | ProxySQL自动运维系统、方法及相应设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101309167A (zh) * | 2008-06-27 | 2008-11-19 | 华中科技大学 | 基于集群备份的容灾系统及方法 |
CN102279857A (zh) * | 2010-06-11 | 2011-12-14 | 阿里巴巴集团控股有限公司 | 一种实现数据复制的方法及系统 |
-
2012
- 2012-03-21 CN CN2012100760142A patent/CN102663017A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101309167A (zh) * | 2008-06-27 | 2008-11-19 | 华中科技大学 | 基于集群备份的容灾系统及方法 |
CN102279857A (zh) * | 2010-06-11 | 2011-12-14 | 阿里巴巴集团控股有限公司 | 一种实现数据复制的方法及系统 |
Non-Patent Citations (2)
Title |
---|
W3CCOLLEGE: "《Keepalived双机热备》", 《WEB开发》 * |
YUANGANG_LOVE: "《mysql双主复制并利用keepalived做高可用》", 《51CTO博客》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559188B (zh) * | 2013-08-19 | 2016-12-28 | 曙光信息产业股份有限公司 | 元数据管理方法及管理系统 |
CN103559188A (zh) * | 2013-08-19 | 2014-02-05 | 曙光信息产业股份有限公司 | 元数据管理方法及管理系统 |
CN103973424A (zh) * | 2014-05-22 | 2014-08-06 | 乐得科技有限公司 | 缓存系统中的故障解决方法和设备 |
CN103973424B (zh) * | 2014-05-22 | 2017-12-29 | 网易乐得科技有限公司 | 缓存系统中的故障解决方法和设备 |
CN104679604A (zh) * | 2015-02-12 | 2015-06-03 | 大唐移动通信设备有限公司 | 一种主节点和备节点切换的方法和装置 |
CN104765653A (zh) * | 2015-02-15 | 2015-07-08 | 杭州米加科技有限公司 | 一种使用keepalived软件实现数据库HA应用的方法 |
CN104765889A (zh) * | 2015-04-30 | 2015-07-08 | 北京奇虎科技有限公司 | 基于数据库高可用框架的切换方法及装置 |
CN105227353A (zh) * | 2015-09-06 | 2016-01-06 | 深圳市华验防伪科技有限公司 | 一种mysql集群实现方法及系统 |
CN105205182A (zh) * | 2015-10-28 | 2015-12-30 | 北京奇虎科技有限公司 | 多机房部署系统及跨机房的业务数据处理方法 |
CN105205182B (zh) * | 2015-10-28 | 2019-02-01 | 北京奇虎科技有限公司 | 多机房部署系统及跨机房的业务数据处理方法 |
CN106341492A (zh) * | 2016-10-19 | 2017-01-18 | 杭州赛客网络科技有限公司 | 基于云通讯服务的分布式内存数据存储和读取方法 |
CN110730221A (zh) * | 2019-09-26 | 2020-01-24 | 上海易点时空网络有限公司 | 基于多节点搭建高可用的mysql架构的方法及系统 |
CN112328581A (zh) * | 2020-12-30 | 2021-02-05 | 望海康信(北京)科技股份公司 | ProxySQL自动运维系统、方法及相应设备和存储介质 |
CN112328581B (zh) * | 2020-12-30 | 2021-05-04 | 望海康信(北京)科技股份公司 | ProxySQL自动运维系统、方法及相应设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102663017A (zh) | 增强MySQL数据库可用性的实现系统及实现方法 | |
US11698844B2 (en) | Managing storage systems that are synchronously replicating a dataset | |
US9910618B1 (en) | Migrating applications executing on a storage system | |
US11106550B2 (en) | Block storage relocation on failure | |
US10178174B2 (en) | Migrating data in response to changes in hardware or workloads at a data store | |
US20110153570A1 (en) | Data replication and recovery method in asymmetric clustered distributed file system | |
CN110362381A (zh) | Hdfs集群高可用部署方法、系统、设备及存储介质 | |
JP2019101703A (ja) | 記憶システム及び制御ソフトウェア配置方法 | |
US10158579B2 (en) | Resource silos at network-accessible services | |
CN102810111B (zh) | 一种保持Oracle数据库服务高可用的实现方法和系统 | |
US10516645B1 (en) | Address resolution broadcasting in a networked device | |
US11190580B2 (en) | Stateful connection resets | |
CN105095317A (zh) | 分布式数据库服务管理系统 | |
US20090187668A1 (en) | Protocol Independent Server Replacement and Replication in a Storage Area Network | |
US10230544B1 (en) | Efficient data forwarding in a networked device | |
CN111078121A (zh) | 一种分布式存储系统数据迁移方法、系统、及相关组件 | |
US10944671B2 (en) | Efficient data forwarding in a networked device | |
CN105260376A (zh) | 用于集群节点缩扩的方法、设备和系统 | |
US11579790B1 (en) | Servicing input/output (‘I/O’) operations during data migration | |
CN113010496B (zh) | 一种数据迁移方法、装置、设备和存储介质 | |
CN106874142B (zh) | 一种实时数据容错处理方法及系统 | |
CN102541693A (zh) | 数据的多副本存储管理方法和系统 | |
CN105760391A (zh) | 数据动态重分布的方法、数据节点、名字节点及系统 | |
US9037762B2 (en) | Balancing data distribution in a fault-tolerant storage system based on the movements of the replicated copies of data | |
US20230004464A1 (en) | Snapshot commitment in a distributed system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120912 |