CN107203617A - 基于MHA的mysql在线迁移系统及方法 - Google Patents

基于MHA的mysql在线迁移系统及方法 Download PDF

Info

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
Application number
CN201710373155.3A
Other languages
English (en)
Other versions
CN107203617B (zh
Inventor
顾伟涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Mingshitang Digital Technology Co ltd
Original Assignee
Hangzhou Ming Shitang Education And Science Development Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Ming Shitang Education And Science Development Co Ltd filed Critical Hangzhou Ming Shitang Education And Science Development Co Ltd
Priority to CN201710373155.3A priority Critical patent/CN107203617B/zh
Publication of CN107203617A publication Critical patent/CN107203617A/zh
Application granted granted Critical
Publication of CN107203617B publication Critical patent/CN107203617B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, 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

基于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主从节点和新从节点上部署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数据库服务操作,最后,清理对应的数据库文件。
CN201710373155.3A 2017-05-24 2017-05-24 基于MHA的mysql在线迁移系统及方法 Active CN107203617B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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中主从节点数据同步方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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.