CN107203617A - 基于MHA的mysql在线迁移系统及方法 - Google Patents
基于MHA的mysql在线迁移系统及方法 Download PDFInfo
- Publication number
- CN107203617A CN107203617A CN201710373155.3A CN201710373155A CN107203617A CN 107203617 A CN107203617 A CN 107203617A CN 201710373155 A CN201710373155 A CN 201710373155A CN 107203617 A CN107203617 A CN 107203617A
- Authority
- CN
- China
- Prior art keywords
- mysql
- mha
- node
- offline
- online
- 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.)
- Granted
Links
Classifications
-
- 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/25—Integrating or interfacing systems involving database management systems
-
- 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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于MHA的mysql在线迁移系统及方法,该系统包括MHA管理节点、mysql主从节点和新从节点三个单元;MHA管理节点包括MHA管理模块、在线切换模块和更新MHA配置模块;mysql主从节点包括在线做数据模块和下线从库模块;新从节点包括做从库模块;本发明操作步骤简单,只需要简单的几个命令,就可以完成mysql数据库节点的迁移,尤其是迁移mysql主库节点,更加显得方便简单;稳定性高,几乎不会出现错误,提高了迁移的质量;较好地保证了数据一致性,避免出现数据不一致问题;自动化程度高,大大提升了工作效率;由于操作简单,可以在同一时间内,操作多个mysql主从集群,实现多个mysql数据库节点在线迁移。
Description
技术领域
本发明属于数据库管理技术领域,主要应用于在线迁移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主从节点和新从节点上部署MHA node软件,在单独的一台服务器上部署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主从节点和新从节点上部署MHA node软件,在单独的一台服务器上部署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配置。
(4)在线切换模块判断待下线节点的角色为slave,那么发送所述mysql端口和带下线节点IP到更新MHA配置模块;否则,调用MHA自身接口在线切换mysql主库,产生新mysql主库,所述mysql主从集群中其他数据库节点重新指向所述新mysql主库,然后,发送所述mysql端口和待下线节点IP到更新MHA配置模块。
(5)更新MHA配置:根据在线切换模块返回值,从MHA配置中删除所述待下线节点IP,从而更新MHA配置。
(6)下线从库:登陆待下线节点,根据mysql端口,获取到待下线mysql数据库服务,然后执行停止mysql数据库服务操作,最后,清理对应的数据库文件。
本发明的有益效果是:
(1)操作步骤简单,只需要简单的几个命令,就可以完成mysql数据库节点的迁移,尤其是迁移mysql主库节点,更加显得方便简单。
(2)稳定性高,几乎不会出现错误,提高了迁移的质量。
(3)较好地保证了数据一致性,避免出现数据不一致问题。
(4)自动化程度高,只需要点击一下鼠标,就可以实现mysql在线迁移,大大提升了工作效率。
(5)支持大规模迁移:由于操作简单,可以在同一时间内,操作多个mysql主从集群,实现多个mysql数据库节点在线迁移。
附图说明
图1是本发明基于MHA的mysql在线迁移方法总体架构图;
图2是本发明基于MHA的mysql在线迁移系统各个模块流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细说明。
本发明提供的一种基于MHA的mysql在线迁移系统,如图1所示,包括MHA管理节点、mysql主从节点和新从节点三个单元:
(1)MHA管理节点
包括MHA管理模块、在线切换模块和更新MHA配置模块,该节点上需要部署MHA管理软件包和node软件包,当需要切换mysql主库时,通过MHA管理节点实现一键操作;当mysql主从节点发生变更时,需要更改MHA相关配置,从而正确检测mysql主从状态。
(2)mysql主从节点
包括在线做数据模块和下线从库模块。从mysql主从集群中,选择一个节点作为在线做数据的源,在线做数据结束后,产生镜像文件,发送所述镜像文件到新从节点;在mysql主从集群中,需要下线的数据库节点记为待下线节点,新从节点加入到MHA后,如果待下线节点为从库,直接执行下线操作,将所述待下线节点从MHA配置中删除,然后停止所述待下线节点mysql服务;如果所述待下线节点为主库,需要执行MHA在线切换主库操作,人工触发mysql主从切换后,然后再下线待下线节点。
(3)新从节点
包括做从库模块。当所述镜像文件发送到新从节点,在该节点上可以快速实现一个mysql从库,然后加入到mysql主从集群中。
进一步地,每个单元具体包括的模块如下:
(1)MHA管理模块
首先,按照MHA部署要求,在mysql主从节点和新从节点上部署MHA node软件,在单独的一台服务器上部署MHA管理软件。
对于每个mysql主从集群,使用唯一的mysql端口作为标识,在MHA管理节点,有一个对应的MHA配置和MHA切换脚本,MHA配置是配置所述mysql主从集群中主库和所有从库的IP、mysql端口和mysql数据目录;MHA切换脚本是配置了所述mysql主从集群相应的VIP和切换逻辑,用于切换mysql主库操作的脚本文件。
然后,检查mysql主从节点和新从节点的互通性,确保所述mysql主从节点和新从节点之间是互通的。
最后,启动MHA监控服务,便于及时监控和mysql主库自动切换。
(2)在线做数据模块
需要传入的参数:待下线节点IP、mysql端口、数据库用户名、数据库密码和做数据目录;
做数据目录是做数据过程中,保存镜像文件的目录。
针对所述待下线节点IP和mysql端口,根据mysql内部接口,获取所述待下线节点的角色(分为master和slave两种),如果所述待下线节点角色是slave,那么记为做数据源节点,其角色为slave;否则,根据mysql内部接口,获取所述待下线节点对应的所有从库,然后随机从中选择一个从库作为做数据源节点,其角色为slave,如果不存在mysql从库,那么选择mysql主库作为做数据源节点,其角色为master。
本发明采用percona‐xtrabackup工具作为在线做数据工具,该工具采用不同的选项支持不同角色的做数据源节点做数据。根据做数据源节点的角色不同,所述做数据工具采用不同的选项进行做数据。做数据过程包括两个阶段:拷贝文件和应用日志。所述拷贝文件是在线拷贝mysql的数据文件和日志文件,不影响mysql数据库服务。所述应用日志,是根据mysql崩溃恢复原理,对日志文件执行前滚和回滚操作。经过两个阶段后得到的一致性文件记为镜像文件。
拷贝文件操作如下:
1)做数据源节点角色是slave
#innobackupex‐‐slave‐info‐‐rsync‐‐user=数据库用户名‐‐password=数据库密码‐‐host=做数据源节点IP‐‐port=mysql>端口‐‐no‐timestamp做数据目录
2)做数据源节点角色是master
#innobackupex‐‐rsync‐‐user=数据库用户名‐‐password=数据库密码‐‐host=做数据源节点IP‐‐port=mysql端口‐‐no‐timestamp做数据目录
应用日志操作如下:
#innobackupex‐‐apply‐log做数据目录
很显然,做数据步骤简单,而且不影响mysql数据库服务。
本模块执行结束后,如果返回值为0,表示操作成功;否则,表示操作失败,如果操作失败,那么报错退出。
(3)做从库模块
需要传入的参数:做数据源节点IP和镜像文件
在做数据源节点上执行在线做数据模块结束后,如果返回值为0,那么在新从节点上执行本模块。
在线做数据模块执行结束后,会产生镜像文件,在新从节点上执行该模块。本模块调用镜像文件,然后按照mysql数据库部署要求,启动mysql数据库服务,然后启动从库同步数据。
调用镜像文件操作如下:
#scp–r做数据源节点IP:镜像文件mysql数据目录
说明:mysql数据目录是存放mysql数据库文件的目录
登陆mysql从库,启动从库数据同步操作如下:
start slave;
登陆mysql从库,通过如下方式查看从库同步状态:
show slave status\G
本模块执行结束后,如果执行成功,返回为真,否则报错退出。
做从库模块执行成功结束后,在MHA管理节点,需要更新所述mysql主从集群对应的MHA配置,把新从节点加入到所述MHA配置。
(4)在线切换模块
需要传入的参数:mysql端口和待下线节点的角色
做从库模块执行成功结束后,在MHA管理节点,执行本模块。
如果待下线节点的角色为slave,那么发送mysql端口和待下线节点IP到更改MHA配置模块;否则,需要调用MHA自身接口在线切换mysql主库。
根据mysql端口获取对应的MHA配置,首先检查是否启动了对应的MHA监控服务,如果启动了所述MHA监控服务,需要停止所述MHA监控服务,否则,执行该模块。
根据所述MHA配置,调用MHA自身接口,在线切换mysql主库,产生新mysql主库,所述mysql主从集群中其他数据库节点重新指向所述新mysql主库,然后,发送mysql端口和待下线节点IP到更改MHA配置模块。
在线切换mysql主库操作如下:
#masterha_master_switch‐‐master_state=alive‐‐interactive=0‐‐running_updates_limit=60MHA配置
(5)更新MHA配置模块
需要传入的参数:mysql端口和待下线节点IP
在线切换模块执行结束后,返回所述mysql端口和待下线节点IP给本模块,根据所述mysql端口,获取对应的所述MHA配置。
更改MHA配置模块,主要是从MHA配置中,删除所述待下线节点IP,从而更新所述MHA配置。
然后,启动MHA监控服务,启动操作如下:
#nohup masterha_manager MHA配置‐‐ignore_fail_on_start‐‐remove_dead_master_conf‐‐ignore_last_failover‐‐wait_on_monitor_error=3600‐‐manager_log=/tmp/manager.log&
(6)下线从库模块
需要传入的参数:待下线节点IP和mysql端口
更新MHA配置模块执行结束后,在待下线节点上执行本模块。
登陆所述带下线节点,根据mysql端口,获取到待下线mysql数据库服务,然后执行停止mysql数据库服务操作,最后,清理对应的数据库文件。
本发明还提供了一种基于MHA的mysql在线迁移方法,如图2所示,该方法包括以下步骤:
(1)按照MHA部署要求,在mysql主从节点和新从节点上部署MHA node软件,在单独的一台服务器上部署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配置。
(4)在线切换模块判断待下线节点的角色为slave,那么发送所述mysql端口和带下线节点IP到更新MHA配置模块;否则,调用MHA自身接口在线切换mysql主库,产生新mysql主库,所述mysql主从集群中其他数据库节点重新指向所述新mysql主库,然后,发送所述mysql端口和待下线节点IP到更新MHA配置模块。
(5)更新MHA配置:根据在线切换模块返回值,从MHA配置中删除所述待下线节点IP,从而更新MHA配置。
(6)下线从库:登陆待下线节点,根据mysql端口,获取待下线mysql数据库服务,然后执行停止mysql数据库服务操作,最后清理对应的数据库文件。
Claims (8)
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主从节点和新从节点上部署MHA node软件,在单独的一台服务器上部署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在线迁移系统,其特征在于,所述MHA管理节点中在线切换模块包括:
需要传入的参数:mysql端口和待下线节点的角色;
如果待下线节点的角色为slave,发送mysql端口和待下线节点的IP到更新MHA配置模块;否则,需要调用MHA自身接口在线切换mysql主库:根据mysql端口获取对应的MHA配置,首先检查是否启动了对应的MHA监控服务,如果启动了所述MHA监控服务,需要停止所述MHA监控服务,否则,根据所述MHA配置,调用MHA自身接口,对mysql主库执行MHA在线切换操作,产生新mysql主库,所述mysql主从集群中其他数据库节点重新指向所述新mysql主库,然后,发送mysql端口和待下线节点IP到更新MHA配置模块。
6.根据权利要求5所述的一种基于MHA的mysql在线迁移系统,其特征在于,所述MHA管理节点中更新MHA配置模块包括:
需要传入的参数:MHA配置和待下线节点IP;
在线切换模块执行结束后,发送mysql端口和待下线节点IP到所述更新MHA配置模块;从MHA配置中删除所述待下线节点IP,从而更新所述MHA配置;否则报错退出。
7.根据权利要求1所述的一种基于MHA的mysql在线迁移系统,其特征在于,所述mysql主从节点中下线从库模块包括:
需要传入的参数:待下线节点IP和mysql端口;
更新MHA配置模块执行结束后,登陆所述待下线节点,根据mysql端口,获取到待下线mysql数据库服务,然后执行停止mysql数据库服务操作,最后,清理对应的数据库文件。
8.一种应用权利要求1‐7任一项系统的mysql在线迁移方法,其特征在于,该方法包括以下步骤:
(1)按照MHA部署要求,在mysql主从节点和新从节点上部署MHA node软件,在单独的一台服务器上部署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配置。
(4)在线切换模块判断待下线节点的角色为slave,那么发送所述mysql端口和带下线节点IP到更新MHA配置模块;否则,调用MHA自身接口在线切换mysql主库,产生新mysql主库,所述mysql主从集群中其他数据库节点重新指向所述新mysql主库,然后,发送所述mysql端口和待下线节点IP到更新MHA配置模块。
(5)更新MHA配置:根据在线切换模块返回值,从MHA配置中删除所述待下线节点IP,从而更新MHA配置。
(6)下线从库:登陆待下线节点,根据mysql端口,获取到待下线mysql数据库服务,然后执行停止mysql数据库服务操作,最后,清理对应的数据库文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710373155.3A CN107203617B (zh) | 2017-05-24 | 2017-05-24 | 基于MHA的mysql在线迁移系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710373155.3A CN107203617B (zh) | 2017-05-24 | 2017-05-24 | 基于MHA的mysql在线迁移系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107203617A true CN107203617A (zh) | 2017-09-26 |
CN107203617B CN107203617B (zh) | 2019-03-26 |
Family
ID=59906127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710373155.3A Active CN107203617B (zh) | 2017-05-24 | 2017-05-24 | 基于MHA的mysql在线迁移系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107203617B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388630A (zh) * | 2018-09-29 | 2019-02-26 | 北京京东金融科技控股有限公司 | 数据库切换方法、系统、电子设备和计算机可读介质 |
CN110597788A (zh) * | 2019-09-18 | 2019-12-20 | 浪潮软件集团有限公司 | 一种MySQL数据库由主从模式热切换到集群模式的方法 |
CN110765203A (zh) * | 2019-09-29 | 2020-02-07 | 烽火通信科技股份有限公司 | 一种容器MySQL主从同步及性能采集实现方法及系统 |
CN111752962A (zh) * | 2020-07-01 | 2020-10-09 | 浪潮云信息技术股份公司 | 一种保证mha集群高可用及一致性的系统及方法 |
CN112000745A (zh) * | 2020-09-03 | 2020-11-27 | 中国建设银行股份有限公司 | 数据库高可用方法及装置 |
CN112084170A (zh) * | 2020-08-12 | 2020-12-15 | 上海维信荟智金融科技有限公司 | 基于ansiable的mysql-mha集群一键部署方法及系统 |
CN112714022A (zh) * | 2020-12-29 | 2021-04-27 | 平安普惠企业管理有限公司 | 多套集群的控制处理方法、装置及计算机设备 |
WO2022237554A1 (zh) * | 2021-05-08 | 2022-11-17 | 山东英信计算机技术有限公司 | 一种集群中主节点选举方法、系统及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130151467A1 (en) * | 2011-01-03 | 2013-06-13 | Manavalan KRISHNAN | Slave Consistency in a Synchronous Replication Environment |
CN104036043A (zh) * | 2014-07-01 | 2014-09-10 | 浪潮(北京)电子信息产业有限公司 | 一种mysql高可用的方法及管理节点 |
CN104252502A (zh) * | 2013-06-29 | 2014-12-31 | 北京新媒传信科技有限公司 | 一种数据库管理平台中数据迁移方法和装置 |
CN106446243A (zh) * | 2016-10-10 | 2017-02-22 | 山东浪潮云服务信息科技有限公司 | 一种关系型数据库的数据集成结构 |
CN106657169A (zh) * | 2015-10-28 | 2017-05-10 | 北京京东尚科信息技术有限公司 | 一种Redis中主从节点数据同步方法 |
-
2017
- 2017-05-24 CN CN201710373155.3A patent/CN107203617B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130151467A1 (en) * | 2011-01-03 | 2013-06-13 | Manavalan KRISHNAN | Slave Consistency in a Synchronous Replication Environment |
CN104252502A (zh) * | 2013-06-29 | 2014-12-31 | 北京新媒传信科技有限公司 | 一种数据库管理平台中数据迁移方法和装置 |
CN104036043A (zh) * | 2014-07-01 | 2014-09-10 | 浪潮(北京)电子信息产业有限公司 | 一种mysql高可用的方法及管理节点 |
CN106657169A (zh) * | 2015-10-28 | 2017-05-10 | 北京京东尚科信息技术有限公司 | 一种Redis中主从节点数据同步方法 |
CN106446243A (zh) * | 2016-10-10 | 2017-02-22 | 山东浪潮云服务信息科技有限公司 | 一种关系型数据库的数据集成结构 |
Non-Patent Citations (3)
Title |
---|
BIGBAO: "不同场景下 MySQL 的迁移方案", 《博客园HTTPS://WWW.CNBLOGS.COM/SMAIL-BAO/P/6061454.HTML》 * |
YAYUN: "MySQL高可用架构之MHA", 《博客园HTTPS://WWW.CNBLOGS.COM/GOMYSQL/P/3675429.HTML》 * |
刘钊 等: "MySQL数据库故障转移工具MHA的研究与应用", 《广西民族大学学报(自然科学版)》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020063197A1 (zh) * | 2018-09-29 | 2020-04-02 | 京东数字科技控股有限公司 | 数据库切换方法、系统、电子设备和计算机可读介质 |
CN109388630B (zh) * | 2018-09-29 | 2020-09-29 | 京东数字科技控股有限公司 | 数据库切换方法、系统、电子设备和计算机可读介质 |
CN109388630A (zh) * | 2018-09-29 | 2019-02-26 | 北京京东金融科技控股有限公司 | 数据库切换方法、系统、电子设备和计算机可读介质 |
CN110597788B (zh) * | 2019-09-18 | 2023-06-09 | 浪潮软件集团有限公司 | 一种MySQL数据库由主从模式热切换到集群模式的方法 |
CN110597788A (zh) * | 2019-09-18 | 2019-12-20 | 浪潮软件集团有限公司 | 一种MySQL数据库由主从模式热切换到集群模式的方法 |
CN110765203A (zh) * | 2019-09-29 | 2020-02-07 | 烽火通信科技股份有限公司 | 一种容器MySQL主从同步及性能采集实现方法及系统 |
CN111752962A (zh) * | 2020-07-01 | 2020-10-09 | 浪潮云信息技术股份公司 | 一种保证mha集群高可用及一致性的系统及方法 |
CN111752962B (zh) * | 2020-07-01 | 2024-01-30 | 浪潮云信息技术股份公司 | 一种保证mha集群高可用及一致性的系统及方法 |
CN112084170A (zh) * | 2020-08-12 | 2020-12-15 | 上海维信荟智金融科技有限公司 | 基于ansiable的mysql-mha集群一键部署方法及系统 |
CN112000745A (zh) * | 2020-09-03 | 2020-11-27 | 中国建设银行股份有限公司 | 数据库高可用方法及装置 |
CN112000745B (zh) * | 2020-09-03 | 2024-10-25 | 中国建设银行股份有限公司 | 数据库高可用方法及装置 |
CN112714022A (zh) * | 2020-12-29 | 2021-04-27 | 平安普惠企业管理有限公司 | 多套集群的控制处理方法、装置及计算机设备 |
WO2022237554A1 (zh) * | 2021-05-08 | 2022-11-17 | 山东英信计算机技术有限公司 | 一种集群中主节点选举方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107203617B (zh) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107203617A (zh) | 基于MHA的mysql在线迁移系统及方法 | |
CN105893050B (zh) | 一种基于PLMS、SVN和Jenkins进行软件项目全生命周期管理的方法 | |
CN109347663B (zh) | 一种OpenStack云平台中资源可视化编排方法 | |
WO2019154394A1 (zh) | 分布式数据库集群系统、数据同步方法及存储介质 | |
US8719782B2 (en) | Integrated package development and machine configuration management | |
CN104699541B (zh) | 同步数据的方法、装置、数据传输组件及系统 | |
CN103457979B (zh) | 分布式文件存储系统及方法 | |
US10229181B2 (en) | System and method for synchronizing data between communication devices in a networked environment without a central server | |
CN106528871A (zh) | 一种在线更新工业控制系统工程数据点信息的方法 | |
CN102664747B (zh) | 一种云计算平台系统 | |
CN104852965B (zh) | 一种用户账号项目管理方法及系统 | |
CN107343034A (zh) | 基于QConf的Redis高可用系统及方法 | |
CN106603725A (zh) | 一种企业云服务虚拟镜像管理服务的实现方法 | |
CN108932309A (zh) | 跨平台数据库管理方法、装置、计算机设备和存储介质 | |
WO2015062181A1 (zh) | 用于实现多源异构数据资源自动同步的方法 | |
CN101252471A (zh) | 一种分布式自动化测试系统及其方法 | |
CN102012944B (zh) | 一种提供复制特性的分布式nosql数据库的实现方法 | |
CN106936899A (zh) | 分布式统计分析系统的配置方法及分布式统计分析系统 | |
CN105959390A (zh) | 微服务的统一管理系统及方法 | |
US10230567B2 (en) | Management of a plurality of system control networks | |
CN1874267A (zh) | 保证集群系统中配置信息一致的方法 | |
CN107294771A (zh) | 一种适用于大数据集群的高效部署系统以及使用方法 | |
CN107872351B (zh) | 一种数据采集系统及采集方法 | |
CN110019138A (zh) | 一种基于Zabbix的传输表空间自动迁移方法和系统 | |
CN111769981A (zh) | 去中心化架构主节点推选方法、数据文件传输方法、系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220722 Address after: 310000 room 801, 8th floor, building 1, No. 108 Xiangyuan Road, Gongshu District, Hangzhou City, Zhejiang Province Patentee after: Hangzhou mingshitang Digital Technology Co.,Ltd. Address before: 310019 room 507, floor 5, building A15, No. 9, Jiusheng Road, Jianggan District, Hangzhou, Zhejiang Province Patentee before: HANGZHOU MISTONG EDUCATION SCIENCE & TECHNOLOGY DEVELOPMENT CO.,LTD. |