基于MHA的mysql在线迁移系统及方法技术方案

技术编号:16301402 阅读:57 留言:0更新日期:2017-09-26 19:30
本发明专利技术公开了一种基于MHA的mysql在线迁移系统及方法,该系统包括MHA管理节点、mysql主从节点和新从节点三个单元;MHA管理节点包括MHA管理模块、在线切换模块和更新MHA配置模块;mysql主从节点包括在线做数据模块和下线从库模块;新从节点包括做从库模块;本发明专利技术操作步骤简单,只需要简单的几个命令,就可以完成mysql数据库节点的迁移,尤其是迁移mysql主库节点,更加显得方便简单;稳定性高,几乎不会出现错误,提高了迁移的质量;较好地保证了数据一致性,避免出现数据不一致问题;自动化程度高,大大提升了工作效率;由于操作简单,可以在同一时间内,操作多个mysql主从集群,实现多个mysql数据库节点在线迁移。

MySQL online migration system and method based on MHA

The invention discloses a MySQL online transfer system and method based on MHA, the system includes a MHA management node, MySQL node and a new node from the slave unit three; MHA management node including MHA management module, online switching module and update the MHA configuration module; MySQL master-slave node including online data module and offline from the library from the new node module; including from the library module; the invention has the advantages of simple operation steps, just a few simple commands, you can complete the migration of MySQL database nodes, especially the migration of MySQL master node, it is more convenient and simple; high stability, little error, improve the migration to better ensure quality; the consistency of the data, to avoid the problem of data inconsistency; a high degree of automation, greatly enhance the work efficiency; the operation is simple, can at the same time. Multiple MySQL master cluster is used to realize the online migration of multiple MySQL database nodes.

【技术实现步骤摘要】
基于MHA的mysql在线迁移系统及方法
本专利技术属于数据库管理
,主要应用于在线迁移mysql数据库节点。
技术介绍
对于互联网公司而言,mysql数据库使用越来越广泛,mysql数据库服务的可用性也显得越来越重要。在管理mysql数据库过程中,经常需要迁移数据库节点。传统迁移数据库节点方法具有如下缺点:(1)操作繁琐:迁移步骤繁多,时间长。(2)易出错:在迁移过程中,出现错误的几率很高。(3)数据不一致:迁移后,新的数据库节点数据不一致。(4)无法做到大批量迁移:由于缺乏自动化,效率低下,很难做到大批量迁移数据库节点。
技术实现思路
本专利技术针对现有技术的不足,提供一种基于MHA的mysql在线迁移系统及方法,基于MHA,可以实现数据库节点在线迁移自动化,该系统可以支持大规模mysql数据库节点在短时间内在线迁移。本专利技术的目的是通过以下技术方案来实现的:一种基于MHA的mysql在线迁移系统,该系统包括MHA管理节点、mysql主从节点和新从节点三个单元;MHA管理节点:包括MHA管理模块、在线切换模块和更新MHA配置模块,该节点上部署MHA管理软件包和node软件包,当需要切换mysql主库时,通过MHA管理节点实现一键操作;当mysql主从节点发生变更时,更改MHA相关配置,从而正确检测mysql主从状态;mysql主从节点:包括在线做数据模块和下线从库模块;从mysql主从集群中,选择一个节点作为在线做数据的源,在线做数据结束后,产生镜像文件,发送所述镜像文件到新从节点;在mysql主从集群中,新从节点加入到MHA后,如果待下线节点为从库,直接执行下线操作,将待下线节点从MHA配置中删除,然后停止待下线节点mysql服务;如果待下线节点为主库,执行MHA在线切换主库操作,人工触发mysql主从切换后,然后再下线待下线节点;新从节点:包括做从库模块;当镜像文件发送到新从节点,在该节点上可以快速实现一个mysql从库,然后加入到mysql主从集群中。进一步地,所述MHA管理节点中MHA管理模块包括:按照MHA部署要求,在mysql主从节点和新从节点上部署MHAnode软件,在单独的一台服务器上部署MHA管理软件;对于每个mysql主从集群,使用唯一的mysql端口作为标识,在MHA管理节点,有一个对应的MHA配置和MHA切换脚本,MHA配置是配置所述mysql主从集群中主库和所有从库的IP、mysql端口和mysql数据目录;MHA切换脚本是配置了所述mysql主从集群相应的VIP和切换逻辑,用于切换mysql主库操作的脚本文件;检查mysql主从节点和新从节点的互通性,确保所述mysql主从节点和新从节点之间是互通的;启动MHA监控服务,便于及时监控和mysql主库自动切换。进一步地,所述mysql主从节点中在线做数据模块包括:需要传入的参数:待下线节点IP、mysql端口、数据库用户名、数据库密码和做数据目录;所述做数据目录是做数据过程中,保存镜像文件的目录;针对所述待下线节点IP和mysql端口,根据mysql内部接口,获取所述待下线节点的角色(分为master和slave两种),如果所述待下线节点角色是slave,那么记为做数据源节点,其角色为slave;否则,根据mysql内部接口,获取所述待下线节点对应的所有从库,然后随机从中选择一个从库作为做数据源节点,其角色为slave,如果不存在mysql从库,那么选择mysql主库作为做数据源节点,其角色为master;采用percona‐xtrabackup工具作为在线做数据工具,根据做数据源节点的角色不同,采用不同的选项进行做数据;做数据过程包括两个阶段:拷贝文件和应用日志;所述拷贝文件是在线拷贝mysql的数据文件和日志文件,不影响mysql数据库服务;所述应用日志,是根据mysql崩溃恢复原理,对日志文件执行前滚和回滚操作;经过两个阶段后得到的一致性文件记为镜像文件。进一步地,所述新从节点中做从库模块包括:需要传入的参数:做数据源节点IP和镜像文件;本模块调用在线做数据模块执行结束后产生的镜像文件,按照mysql数据库部署要求,启动mysql数据库服务,然后启动从库同步数据。做从库模块执行成功结束后,在MHA管理节点更新所述mysql主从集群对应的MHA配置,把新从节点加入到所述MHA配置。进一步地,所述MHA管理节点中在线切换模块包括:需要传入的参数:mysql端口和待下线节点的角色;如果待下线节点的角色为slave,发送mysql端口和待下线节点的IP到更新MHA配置模块;否则,需要调用MHA自身接口在线切换mysql主库:根据mysql端口获取对应的MHA配置,首先检查是否启动了对应的MHA监控服务,如果启动了所述MHA监控服务,需要停止所述MHA监控服务,否则,根据所述MHA配置,调用MHA自身接口,对mysql主库执行MHA在线切换操作,产生新mysql主库,所述mysql主从集群中其他数据库节点重新指向所述新mysql主库,然后,发送mysql端口和待下线节点IP到更新MHA配置模块。进一步地,所述MHA管理节点中更新MHA配置模块包括:需要传入的参数:MHA配置和待下线节点IP;在线切换模块执行结束后,发送mysql端口和待下线节点IP到所述更新MHA配置模块;从MHA配置中删除所述待下线节点IP,从而更新所述MHA配置;否则报错退出。进一步地,所述mysql主从节点中下线从库模块包括:需要传入的参数:待下线节点IP和mysql端口;更新MHA配置模块执行结束后,登陆所述待下线节点,根据mysql端口,获取到待下线mysql数据库服务,然后执行停止mysql数据库服务操作,最后,清理对应的数据库文件。一种基于MHA的mysql在线迁移方法,该方法包括以下步骤:(1)按照MHA部署要求,在mysql主从节点和新从节点上部署MHAnode软件,在单独的一台服务器上部署MHA管理软件;对于每个mysql主从集群,使用唯一的mysql端口作为标识,在MHA管理节点,对于每个mysql主从集群,有一个对应的MHA配置和MHA切换脚本;检查mysql主从节点和新从节点的互通性,确保所述mysql主从节点和新从节点之间是互通的;启动MHA监控服务;(2)在线做数据模块针对待下线节点IP和mysql端口,根据mysql内部接口,获取待下线节点的角色,如果所述待下线节点角色是slave,那么记为做数据源节点,其角色为slave;否则,根据mysql内部接口,获取所述待下线节点对应的所有从库,然后随机从中选择一个从库作为做数据源节点,其角色为slave,如果不存在mysql从库,那么选择mysql主库作为做数据源节点,其角色为master;采用percona‐xtrabackup工具作为在线做数据工具,做数据过程包括两个阶段:拷贝文件和应用日志,经过两个阶段后得到的一致性文件记为镜像文件。(3)做从库模块调用镜像文件,然后按照mysql数据库部署要求,启动mysql数据库服务,然后启动从库同步数据;执行结束后,如果执行失败,那么报错退出;做从库模块成功执行结束后,在MHA管理节点,需要更新所述mysql主从集群对应的MHA配置,本文档来自技高网...
基于MHA的mysql在线迁移系统及方法

【技术保护点】
一种基于MHA的mysql在线迁移系统,其特征在于,该系统包括MHA管理节点、mysql主从节点和新从节点三个单元;MHA管理节点:包括MHA管理模块、在线切换模块和更新MHA配置模块,该节点上部署MHA管理软件包和node软件包,当需要切换mysql主库时,通过MHA管理节点实现一键操作;当mysql主从节点发生变更时,更改MHA相关配置,从而正确检测mysql主从状态;mysql主从节点:包括在线做数据模块和下线从库模块;从mysql主从集群中,选择一个节点作为在线做数据的源,在线做数据结束后,产生镜像文件,发送所述镜像文件到新从节点;在mysql主从集群中,新从节点加入到MHA后,如果待下线节点为从库,直接执行下线操作,将待下线节点从MHA配置中删除,然后停止待下线节点mysql服务;如果待下线节点为主库,执行MHA在线切换主库操作,人工触发mysql主从切换后,然后再下线待下线节点;新从节点:包括做从库模块;当镜像文件发送到新从节点,在该节点上可以快速实现一个mysql从库,然后加入到mysql主从集群中。

【技术特征摘要】
1.一种基于MHA的mysql在线迁移系统,其特征在于,该系统包括MHA管理节点、mysql主从节点和新从节点三个单元;MHA管理节点:包括MHA管理模块、在线切换模块和更新MHA配置模块,该节点上部署MHA管理软件包和node软件包,当需要切换mysql主库时,通过MHA管理节点实现一键操作;当mysql主从节点发生变更时,更改MHA相关配置,从而正确检测mysql主从状态;mysql主从节点:包括在线做数据模块和下线从库模块;从mysql主从集群中,选择一个节点作为在线做数据的源,在线做数据结束后,产生镜像文件,发送所述镜像文件到新从节点;在mysql主从集群中,新从节点加入到MHA后,如果待下线节点为从库,直接执行下线操作,将待下线节点从MHA配置中删除,然后停止待下线节点mysql服务;如果待下线节点为主库,执行MHA在线切换主库操作,人工触发mysql主从切换后,然后再下线待下线节点;新从节点:包括做从库模块;当镜像文件发送到新从节点,在该节点上可以快速实现一个mysql从库,然后加入到mysql主从集群中。2.根据权利要求1所述的一种基于MHA的mysql在线迁移系统,其特征在于,所述MHA管理节点中MHA管理模块包括:按照MHA部署要求,在mysql主从节点和新从节点上部署MHAnode软件,在单独的一台服务器上部署MHA管理软件;对于每个mysql主从集群,使用唯一的mysql端口作为标识,在MHA管理节点,有一个对应的MHA配置和MHA切换脚本,MHA配置是配置所述mysql主从集群中主库和所有从库的IP、mysql端口和mysql数据目录;MHA切换脚本是配置了所述mysql主从集群相应的VIP和切换逻辑,用于切换mysql主库操作的脚本文件;检查mysql主从节点和新从节点的互通性,确保所述mysql主从节点和新从节点之间是互通的;启动MHA监控服务,便于及时监控和mysql主库自动切换。3.根据权利要求1所述的一种基于MHA的mysql在线迁移系统,其特征在于,所述mysql主从节点中在线做数据模块包括:需要传入的参数:待下线节点IP、mysql端口、数据库用户名、数据库密码和做数据目录;所述做数据目录是做数据过程中,保存镜像文件的目录;针对所述待下线节点IP和mysql端口,根据mysql内部接口,获取所述待下线节点的角色(分为master和slave两种),如果所述待下线节点角色是slave,那么记为做数据源节点,其角色为slave;否则,根据mysql内部接口,获取所述待下线节点对应的所有从库,然后随机从中选择一个从库作为做数据源节点,其角色为slave,如果不存在mysql从库,那么选择mysql主库作为做数据源节点,其角色为master;采用percona‐xtrabackup工具作为在线做数据工具,根据做数据源节点的角色不同,采用不同的选项进行做数据;做数据过程包括两个阶段:拷贝文件和应用日志;所述拷贝文件是在线拷贝mysql的数据文件和日志文件,不影响mysql数据库服务;所述应用日志,是根据mysql崩溃恢复原理,对日志文件执行前滚和回滚操作;经过两个阶段后得到的一致性文件记为镜像文件。4.根据权利要求3所述的一种基于MHA的mysql在线迁移系统,其特征在于,所述新从节点中做从库模块包括:需要传入的参数:做数据源节点IP和镜像文件;本模块调用在线做数据模块执行结束后产生的镜像文件,按照mysql数据库部署要求,启动mysql数据库服务,然后启动从库同步数据。做从库模块执行成功结束后,在MHA管理节点更新所述mysql主从集群对应的MHA配置,把新从节点加入到所述MHA配置。5.根据权利要求4所述的一种基于MHA的mysql在线迁移系统,其特征在于...

【专利技术属性】
技术研发人员:顾伟涛
申请(专利权)人:杭州铭师堂教育科技发展有限公司
类型:发明
国别省市:浙江,33

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

1