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

技术编号:7759192 阅读:153 留言:0更新日期:2012-09-14 01:14
本发明专利技术涉及增强MySQL数据库可用性的实现系统及实现方法,在MySQL传统复制特性的基础上实现双向读写和双向同步,提高数据库的读写并发能力,通过搭配应用开源软件keepalived,实现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数据库服务互为主从,各台节点服务器的数据库均可以同时接受前端应用的读写请求,并且相互间保持数据一致;虚拟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脚本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:潘海东梅春李丙洋
申请(专利权)人:互动在线北京科技有限公司
类型:发明
国别省市:

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

1