增强MySQL数据库可用性的实现系统及实现方法

文档序号:6366677阅读:239来源:国知局
专利名称:增强MySQL数据库可用性的实现系统及实现方法
技术领域
本发明涉及MySQL数据库,特别是涉及一种增强MySQL数据库可用性的实现系统及实现方法。
背景技术
MYSQL被广泛应用在许多中小型网站中,MYSQL数据库的管理显得尤为重要,如何保证数据库持续稳定的运行已成为需要解决的问题。目前比较流行的解决方案是MYSQL技术文档中提供的方案,基于第三方开源软件DRBD和HEARTBEAT实现,其中DRBD负责在两个节点间数据的同步,HEARTBEAT提供前端应用连接的虚拟IP,当正在对外提供服务的节点出现故障时,HEARTBEAT能够自动将虚拟IP切换到正常的节点上,使MySQL数据库始终保持能够对外提供服务,具体实现方式为
I).在两个服务器节点中创建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数据库可用性的实现方法,该方法包括如下步骤I)双向异步复制模块对某一个节点服务器进行系统设置;
2)双向异步复制模块根据步骤I中对节点服务器的设置对另一个/些节点服务器进行相同或相应的系统设置;3)数据库服务监控模块持续不断监控系统运行状态,确定本地数据库对外提供服务的端口正常工作;4)客户端对节点服务器进行访问时,始终访问由虚拟IP模块提供的访问IP,虚拟IP模块决定虚拟IP绑定到状态正常的某一个节点服务器;5)当绑定虚拟IP的 节点发生故障时,数据库服务监控模块触发虚拟IP模块,将虚拟IP重新绑定到与待访问的节点服务器具有相同配置的另一个节点服务器;进一步,所述步骤I对某一个节点服务器进行系统设置是指对节点服务器的控制自增列起始值和偏移量以及服务标识ID进行设置。进一步,所述步骤2对另一个节点服务器进行系统设置是指对节点服务器的控制自增列起始值和偏移量以及服务标识ID进行设置。本发明的优点在于I)在不停止数据库服务的前提下,实现数据库软件的版本升级;2)易于大数据量迁移方案的设计和实施;3)实现大对象的结构变更(包含增/删列或修改表索引);4)自动故障切换的高可用体系;5)易伸缩性,方便实现系统快速扩容,以应用大负载压力的情况。


图I :本发明系统结构示意图;图2 :本发明实现方法流程图;图3 :本发明具体实施例图。
具体实施例方式如图I所示为本发明一种增强MySQL数据库可用性的实现系统结构示意图,该系统包括双向异步复制模块1,用于使多个节点服务器中的MySQL数据库服务互为主从,各台节点服务器的数据库均可以同时接受前端应用的读写请求,并且相互间保持数据一致。虚拟IP模块2,提供一个或多个虚拟IP,使得前端应用在节点服务器数据库发生故障时通过虚拟IP来访问节点服务器。数据库服务监控模块3,当持有虚拟IP的节点服务器发生故障时,能自动将虚拟IP移至仍处于工作状态的数据库服务器,以使前端应用无须做任何修改,以此保证整个数据库服务的高可用性。如图2为本发明实现方法的流程图。一种增强MySQL数据库可用性的实现方法包括如下步骤I)双向异步复制模块对某一个节点服务器进行系统设置;2)双向异步复制模块根据步骤I中对节点服务器的设置对另一个/些节点服务器进行相同或相应的系统设置;3)数据库服务监控模块持续不断监控系统运行状态,确定本地数据库对外提供服务的端口正常工作;
4)客户端对节点服务器进行访问时,始终访问由虚拟IP模式提供的访问IP,虚拟IP模块决定虚拟IP绑定到状态正常的某一个节点服务器;5)当绑定虚拟IP的节点发生故障时,数据库服务监控模块触发虚拟IP模式,将虚拟IP重新绑定到与待访问的节点服务器具有相同配置的另一个节点服务器。如图3所示为本发明具体实施例图,本实施例中以节点服务器A和B为例对增强MySQL数据库可用性的实现方法做详细说明。具体实施步骤如下I)双向异步复制模块对某一个节点服务器进行系统设置,即是指对节点服务器的控制自增列起始值和偏移量以及服务标识ID进行设置。按照标准方式创建MySQL主从复制环境,为避免双向同时读写相同对象时的自增值不重复,必须对自增类型的起始值和偏移量进行设置。首先对节点服务器A和B进行配置。■节点A端配置控制自增列起始值和偏移量的初始化参数如下 auto_increment_increment = 2 auto_increment_offset = I■节点A端配置log_slave_update参数,记录本地slave应用的操作日志;■节点A端启用MySQL BINLOG日志,并在MySQL数据库中创建专用复制帐户;■节点B端使用前面创建的复制帐户,执行CHANGE MASTER命令连接至节点A ;■节点B端执行START SLAVE启动日志应用线程。2)双向异步复制模块根据步骤I中对节点服务器的设置对另一个/些节点服务器进行相同或相应的系统设置。上述步骤实现了传统的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绑定到状态正常的某一个节点服务器;此时配置Ke^alived虚拟IP模块,一般由第三方的开源软件ke印alived提供虚拟IP,该软件在A/B两端均需要进行配置,配置的重点有两方面,一个是调用mysql状态监控脚本,配置如下vrrp_script check_run{script" /usr/local/keepalived/bin/ka_check_mysql. sh〃interval 10}另一个则是配置主从身份的检测state BACKUPvirtual_router_id 50priority 90而后启动keepalived服务。5)当绑定虚拟IP的节点发生故障时,数据库服务监控模块触发虚拟IP模式,将虚拟IP重新绑定到与待访问的节点服务器具有相同配置的另一个节点服务器。如数据库软件版本升级、对象的结构变更、大数据量迁移方案的实施等均可按照上述步骤实施。本发明一种增强MySQL数据库可用性的实现系统及实现方法,在MySQL传统复制特性的基础上实现双向读写和双向同步,提高数据库的读写并发能力,通过搭配应用开源软件keepalived,实现MySQL数据库服务的故障自动切换,保障MySQL数据库服务的高可 用。应当理解,以上借助优选实施例对本发明的技术方案进行的详细说明是示意性的而非限制性的。本领域的普通技术人员在阅读本发明说明书的基础上可以对各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.增强MySQL数据库可用性的实现系统,其特征在干,该系统包括 双向异步复制模块,用于使多个节点服务器中的MySQL数据库服务互为主从,各台节点服务器的数据库均可以同时接受前端应用的读写请求,并且相互间保持数据一致; 虚拟IP模块提供一个或多个虚拟IP,使得前端应用在节点服务器数据库发生故障时通过虚拟IP来访问节点服务器; 数据库服务监控模块当持有虚拟IP的节点服务器发生故障吋,能自动将虚拟IP移至仍处于工作状态的数据库服务器,以使前端应用无须做任何修改,以此保证整个数据库服务的高可用性。
2.增强MySQL数据库可用性的实现方法,其特征在于,该方法包括如下步骤 1)双向异步复制模块对某一个节点服务器进行系统设置; 2)双向异步复制模块根据步骤I中对节点服务器的设置对另ー个/些节点服务器进行相同或相应的系统设置; 3)数据库服务监控模块持续不断监控系统运行状态,确定本地数据库对外提供服务的端ロ正常工作; 4)客户端对节点服务器进行访问时,始終访问由虚拟IP模块提供的访问IP,虚拟IP模块决定虚拟IP绑定到状态正常的某一个节点服务器; 5)当绑定虚拟IP的节点发生故障时,数据库服务监控模块触发虚拟IP模块,将虚拟IP重新绑定到与待访问的节点服务器具有相同配置的另ー个节点服务器。
3.根据权利要求2所述的增强MySQL数据库可用性的实现方法,其特征在于,所述步骤I对某ー个节点服务器进行系统设置是指对节点服务器的控制自增列起始值和偏移量以及服务标识ID进行设置。
4.根据权利要求2所述的增强MySQL数据库可用性的实现方法,其特征在于,所述步骤2对另ー个节点服务器进行系统设置是指对节点服务器的控制自增列起始值和偏移量以及服务标识ID进行设置。
全文摘要
本发明涉及增强MySQL数据库可用性的实现系统及实现方法,在MySQL传统复制特性的基础上实现双向读写和双向同步,提高数据库的读写并发能力,通过搭配应用开源软件keepalived,实现MySQL数据库服务的故障自动切换,保障MySQL数据库服务的高可用。
文档编号G06F17/30GK102663017SQ20121007601
公开日2012年9月12日 申请日期2012年3月21日 优先权日2012年3月21日
发明者李丙洋, 梅春, 潘海东 申请人:互动在线(北京)科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1