CN109189860A - 一种基于Kubernetes系统的MySQL主备增量同步方法 - Google Patents

一种基于Kubernetes系统的MySQL主备增量同步方法 Download PDF

Info

Publication number
CN109189860A
CN109189860A CN201811219781.8A CN201811219781A CN109189860A CN 109189860 A CN109189860 A CN 109189860A CN 201811219781 A CN201811219781 A CN 201811219781A CN 109189860 A CN109189860 A CN 109189860A
Authority
CN
China
Prior art keywords
node server
mysql
data
increment synchronization
kubernetes
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.)
Pending
Application number
CN201811219781.8A
Other languages
English (en)
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.)
Shandong Inspur Cloud Information Technology Co Ltd
Original Assignee
Shandong Inspur Cloud Information Technology 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 Shandong Inspur Cloud Information Technology Co Ltd filed Critical Shandong Inspur Cloud Information Technology Co Ltd
Priority to CN201811219781.8A priority Critical patent/CN109189860A/zh
Publication of CN109189860A publication Critical patent/CN109189860A/zh
Pending legal-status Critical Current

Links

Abstract

本发明特别涉及一种基于Kubernetes系统的MySQL主备增量同步方法。该基于Kubernetes系统的MySQL主备增量同步方法,首先在Kubernetes集群上建立MySQL主备数据库系统;然后从节点服务器宕机重启时,从节点服务器开启增量同步,通过一个I/O线程和SQL线程保持与主节点服务器进行通信和同步;从而保证重启后的从节点服务器与主节点服务器之间数据状态一致,正常同步。该基于Kubernetes系统的MySQL主备增量同步方法,解决了MySQL主备数据库系统中从节点服务器故障数据恢复与同步效率低的问题,实现了MySQL主备数据库系统的增量同步,与全量同步相比,数据量小,效率高,还能够实现系统自动化控制,无需手动操作,保证了MySQL主备数据库系统的高可用性。

Description

一种基于Kubernetes系统的MySQL主备增量同步方法
技术领域
本发明涉及云计算技术领域,特别涉及一种基于Kubernetes系统的MySQL主备增量同步方法。
背景技术
随着信息技术的广泛应用和快速发展,云计算作为一种新兴的计算模型日益受到人们的广泛关注。Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。具体来说,通过Kubernetes可以快速部署应用、快速扩展应用、无缝对接新的应用功能、节省资源并优化硬件资源的使用。
基于Kubernetes技术部署和管理MySQL主备集群,一方面可以自动把某个服务器上(称为主节点服务器,即master)的所有变化同步到另一个服务器(称为从节点服务器,即slave),从而提高了数据的读能力,在不干扰其他业务的情况下执行报表和分析工作;一方面增强数据库系统的容灾能力,当master节点宕机,能够实现节点自动重启与恢复,短时间内正常提供服务。
针对MySQL主备模式中slave节点服务器故障宕机,如何进行数据的恢复和同步,目前主要有两种解决方案:第一种是全量备份,这种方式就是对主节点所有的数据文件进行备份,备份效率低;第二种就是增量备份,slave节点只备份与master节点差异的数据,备份效率高。
由于MySQL主备模式主要用于对数据安全性要求较高的大中型企业应用的生产数据库,数据量较大,又结合Kubernetes技术,如果从节点容器每次故障重启都采用全量备份的话,备份时间长,在高并发的场景下造成主节点服务器压力增大,一旦主节点服务器崩溃导致数据库系统不可用,因此高效率的增量同步是一个比较好的解决办法。然而,针对Kubernetes系统,目前仍无法实现增量同步备份。
基于此,本发明提出了一种基于Kubernetes系统的MySQL主备增量同步方法。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于Kubernetes系统的MySQL主备增量同步方法。
本发明是通过如下技术方案实现的:
一种基于Kubernetes系统的MySQL主备增量同步方法,其特征在于:首先在Kubernetes集群上建立MySQL主备数据库系统;然后当从节点服务器宕机重启时,从节点服务器开启增量同步,通过一个I/O线程和SQL线程保持与主节点服务器进行通信和同步;从而保证重启后的从节点服务器与主节点服务器之间数据状态一致,正常同步。
所述在Kubernetes集群上建立MySQL主备数据库系统,包括以下步骤:
(1)在Kubernetes集群中配置一个容器作为主节点服务器;
(2)在主节点服务器上运用Xtrabackup工具进行数据全量备份;
(3)在Kubernetes集群中配置一个容器作为从节点服务器,接收主节点服务器上全量备份数据并替换从节点服务器数据目录;
(4)在从节点服务器通过SQL语句连接到主节点服务器,并通过SQL语句开启从节点;
(5)从节点服务器通过一个I/O线程和SQL线程保持与主节点服务器进行通信和同步。
所述步骤(2)中,Xtrabackup工具支持在线热备份,在备份时不影响数据读写,同时支持备份InnoDB和XtraDB数据表。
所述步骤(5)中,I/O线程负责查看主节点服务器数据变化,SQL线程负责在从节点服务器执行变更操作。
当所述从节点服务器宕机重启时,从节点服务器实现增量同步,具体包括以下步骤:
当从节点服务器宕机重启时,从节点服务器实现增量同步,具体包括以下步骤:
(1)从节点服务器故障宕机重启开始,进入增量恢复过程,首先判断MySQL数据文件夹是否存在,如果存在,则说明这是重启过程,进行增量同步;
(2)进入MySQL数据目录下,修改全量备份时产生的文件,如果全量备份文件存在,则将全量备份文件进行重命名或者删除;
(3)不执行主从全量同步命令;
(4)查看从节点服务器宕机时的状态以及当前主节点服务器的数据状态,根据从节点服务器与主节点服务器binlog日志和同步位置pos点完成从节点服务器数据的增量恢复。
所述步骤(4)中,在执行增量同步的过程中,从节点服务器通过I\O线程保持与主节点服务器的通信,通过SQL线程执行增量同步操作,根据binlog日志和同步位置pos点进行增量同步。
所述步骤(4)具体包括以下步骤:
(A)重启从节点服务器之后,查看从节点服务器的I\O_Running线程和SQL线程的状态,如果状态正常则保持与master节点的通信,用于数据增量同步;
(B)查询从节点服务器binlog日志和同步位置pos点,判断从节点服务器已经同步到主节点服务器的什么位置;
(C)查询主节点服务器的binlog日志和同步位置pos点,获取主节点服务器数据更新到的位置;
(D)从节点服务器根据宕机时同步数据的同步位置pos点与binlog日志,开始同步至主节点服务器最新的binlog日志的同步位置pos点,恢复与主节点服务器之间的差异数据,使其一致;
(E)增量同步完成,重启成功。
所述binlog日志记录节点服务器上所有的变更操作,同步位置pos点为最近更新的binlog日志文件位置。
本发明的有益效果是:该基于Kubernetes系统的MySQL主备增量同步方法,解决了MySQL主备数据库系统中从节点服务器故障数据恢复与同步效率低的问题,实现了MySQL主备数据库系统的增量同步,与全量同步相比,数据量小,效率高,还能够实现系统自动化控制,无需手动操作,保证了MySQL主备数据库系统的高可用性。
附图说明
附图1为本发明基于Kubernetes系统的MySQL主备增量同步方法示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
该基于Kubernetes系统的MySQL主备增量同步方法,首先在Kubernetes集群上建立MySQL主备数据库系统;然后从节点服务器(slave节点)宕机重启时,从节点服务器开启增量同步,通过一个I/O线程和SQL线程保持与主节点服务器(master节点)进行通信和同步;从而保证重启后的从节点服务器与主节点服务器之间数据状态一致,正常同步。
所述在Kubernetes集群上建立MySQL主备数据库系统,包括以下步骤:
(1)在Kubernetes集群中配置一个容器作为主节点服务器;
(2)在主节点服务器上运用Xtrabackup工具进行数据全量备份;
(3)在Kubernetes集群中配置一个容器作为从节点服务器,接收主节点服务器上全量备份数据并替换从节点服务器数据目录;
(4)在从节点服务器通过SQL语句连接到主节点服务器,并通过SQL语句开启从节点;
(5)从节点服务器通过一个I/O线程和SQL线程保持与主节点服务器进行通信和同步。
所述步骤(2)中,Xtrabackup工具支持在线热备份,在备份时不影响数据读写,同时支持备份InnoDB和XtraDB数据表。
所述步骤(5)中,I/O线程负责查看主节点服务器数据变化,SQL线程负责在从节点服务器执行变更操作。
由于Kubernetes管理的容器具有故障自动恢复和重启功能,当从节点服务器宕机重启时会重新执行步骤(3)、(4)和(5)。但是在高并发和海量数据的场景下,节点恢复时间长,效率低,会造成从节点服务器长时间不可用。因此,当从节点服务器宕机重启时,从节点服务器实现增量同步。
具体包括以下步骤:
(1)从节点服务器故障宕机重启开始,进入增量恢复过程,首先判断MySQL数据文件夹是否存在,如果存在,则说明这是重启过程,进行增量同步;
(2)进入MySQL数据目录下,修改全量备份时产生的文件,如果全量备份文件存在,则将全量备份文件进行重命名或者删除;
(3)不执行主从全量同步命令;
(4)查看从节点服务器宕机时的状态以及当前主节点服务器的数据状态,根据从节点服务器与主节点服务器binlog日志和同步位置pos点完成从节点服务器数据的增量恢复。
所述步骤(4)中,在执行增量同步的过程中,从节点服务器通过I\O线程保持与主节点服务器的通信,通过SQL线程执行增量同步操作,根据binlog日志和同步位置pos点进行增量同步。
所述步骤(4)具体包括以下步骤:
(A)重启从节点服务器之后,查看从节点服务器的I\O_Running线程和SQL线程的状态,如果状态正常则保持与master节点的通信,用于数据增量同步;
(B)查询从节点服务器binlog日志和同步位置pos点,判断从节点服务器已经同步到主节点服务器的什么位置;
(C)查询主节点服务器的binlog日志和同步位置pos点,获取主节点服务器数据更新到的位置;
(D)从节点服务器根据宕机时同步数据的同步位置pos点与binlog日志,开始同步至主节点服务器最新的binlog日志的同步位置pos点,恢复与主节点服务器之间的差异数据,使其一致;
(E)增量同步完成,重启成功。
所述binlog日志记录节点服务器上所有的变更操作,同步位置pos点为最近更新的binlog日志文件位置。

Claims (8)

1.一种基于Kubernetes系统的MySQL主备增量同步方法,其特征在于:首先在Kubernetes集群上建立MySQL主备数据库系统;然后从节点服务器宕机重启时,从节点服务器开启增量同步,通过一个I/O线程和SQL线程保持与主节点服务器进行通信和同步;从而保证重启后的从节点服务器与主节点服务器之间数据状态一致,正常同步。
2.根据权利要求1所述的基于Kubernetes系统的MySQL主备增量同步方法,其特征在于:所述在Kubernetes集群上建立MySQL主备数据库系统,包括以下步骤:
(1)在Kubernetes集群中配置一个容器作为主节点服务器;
(2)在主节点服务器上运用Xtrabackup工具进行数据全量备份;
(3)在Kubernetes集群中配置一个容器作为从节点服务器,接收主节点服务器上全量备份数据并替换从节点服务器数据目录;
(4)在从节点服务器通过SQL语句连接到主节点服务器,并通过SQL语句开启从节点;
(5)从节点服务器通过一个I/O线程和SQL线程保持与主节点服务器进行通信和同步。
3.根据权利要求2所述的基于Kubernetes系统的MySQL主备增量同步方法,其特征在于:所述步骤(2)中,Xtrabackup工具支持在线热备份,在备份时不影响数据读写,同时支持备份InnoDB和XtraDB数据表。
4.根据权利要求2所述的基于Kubernetes系统的MySQL主备增量同步方法,其特征在于:所述步骤(5)中,I/O线程负责查看主节点服务器数据变化,SQL线程负责在从节点服务器执行变更操作。
5.根据权利要求1所述的基于Kubernetes系统的MySQL主备增量同步方法,其特征在于,当从节点服务器宕机重启时,从节点服务器实现增量同步,具体包括以下步骤:
(1)从节点服务器故障宕机重启开始,进入增量恢复过程,首先判断MySQL数据文件夹是否存在,如果存在,则说明这是重启过程,进行增量同步;
(2)进入MySQL数据目录下,修改全量备份时产生的文件,如果全量备份文件存在,则将全量备份文件进行重命名或者删除;
(3)不执行主从全量同步命令;
(4)查看从节点服务器宕机时的状态以及当前主节点服务器的数据状态,根据从节点服务器与主节点服务器binlog日志和同步位置pos点完成从节点服务器数据的增量恢复。
6.根据权利要求5所述的基于Kubernetes系统的MySQL主备增量同步方法,其特征在于:所述步骤(4)中,在执行增量同步的过程中,从节点服务器通过I\O线程保持与主节点服务器的通信,通过SQL线程执行增量同步操作,根据binlog日志和同步位置pos点进行增量同步。
7.根据权利要求5或6所述的基于Kubernetes系统的MySQL主备增量同步方法,其特征在于,所述步骤(4)具体包括以下步骤:
(A)重启从节点服务器之后,查看从节点服务器的I\O_Running线程和SQL线程的状态,如果状态正常则保持与master节点的通信,用于数据增量同步;
(B)查询从节点服务器binlog日志和同步位置pos点,判断从节点服务器已经同步到主节点服务器的什么位置;
(C)查询主节点服务器的binlog日志和同步位置pos点,获取主节点服务器数据更新到的位置;
(D)从节点服务器根据宕机时同步数据的同步位置pos点与binlog日志,开始同步至主节点服务器最新的binlog日志的同步位置pos点,恢复与主节点服务器之间的差异数据,使其一致;
(E)增量同步完成,重启成功。
8.根据权利要求7所述的基于Kubernetes系统的MySQL主备增量同步方法,其特征在于:所述binlog日志记录节点服务器上所有的变更操作,同步位置pos点为最近更新的binlog日志文件位置。
CN201811219781.8A 2018-10-19 2018-10-19 一种基于Kubernetes系统的MySQL主备增量同步方法 Pending CN109189860A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811219781.8A CN109189860A (zh) 2018-10-19 2018-10-19 一种基于Kubernetes系统的MySQL主备增量同步方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811219781.8A CN109189860A (zh) 2018-10-19 2018-10-19 一种基于Kubernetes系统的MySQL主备增量同步方法

Publications (1)

Publication Number Publication Date
CN109189860A true CN109189860A (zh) 2019-01-11

Family

ID=64945710

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811219781.8A Pending CN109189860A (zh) 2018-10-19 2018-10-19 一种基于Kubernetes系统的MySQL主备增量同步方法

Country Status (1)

Country Link
CN (1) CN109189860A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750594A (zh) * 2019-09-30 2020-02-04 上海视云网络科技有限公司 一种基于mysql增量日志实时跨网络数据库同步方法
CN110765203A (zh) * 2019-09-29 2020-02-07 烽火通信科技股份有限公司 一种容器MySQL主从同步及性能采集实现方法及系统
CN111259072A (zh) * 2020-01-08 2020-06-09 广州虎牙科技有限公司 数据同步方法、装置、电子设备和计算机可读存储介质
CN111340414A (zh) * 2020-02-14 2020-06-26 上海东普信息科技有限公司 云仓大数据处理方法、云仓系统、计算机设备和存储介质
CN111651523A (zh) * 2020-05-29 2020-09-11 烽火通信科技股份有限公司 一种Kubernetes容器平台的MySQL数据同步方法及系统
CN111930466A (zh) * 2020-05-28 2020-11-13 武汉达梦数据库有限公司 一种基于Kubernetes的数据同步环境部署方法和装置
CN112286729A (zh) * 2020-11-03 2021-01-29 浪潮云信息技术股份公司 一种指定时间恢复的方法
CN112579613A (zh) * 2020-12-31 2021-03-30 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 数据库集群差异比对与数据同步的方法、系统及介质
CN113297173A (zh) * 2021-05-24 2021-08-24 阿里巴巴新加坡控股有限公司 分布式数据库集群管理方法及装置、电子设备
CN113596190A (zh) * 2021-07-23 2021-11-02 浪潮云信息技术股份公司 基于Kubernetes的应用分布式多活系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041679B1 (en) * 2008-06-04 2011-10-18 Symantec Operating Corporation Synthetic differential backups creation for a database using binary log conversion
CN102752372A (zh) * 2012-06-18 2012-10-24 天津神舟通用数据技术有限公司 一种基于文件的数据库同步方法
CN104036043A (zh) * 2014-07-01 2014-09-10 浪潮(北京)电子信息产业有限公司 一种mysql高可用的方法及管理节点
CN105512284A (zh) * 2015-12-07 2016-04-20 上海爱数信息技术股份有限公司 基于事务形态数据和binlog文件的MySQL数据保护方法
CN106570007A (zh) * 2015-10-09 2017-04-19 阿里巴巴集团控股有限公司 用于分布式缓存系统数据同步的方法和设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041679B1 (en) * 2008-06-04 2011-10-18 Symantec Operating Corporation Synthetic differential backups creation for a database using binary log conversion
CN102752372A (zh) * 2012-06-18 2012-10-24 天津神舟通用数据技术有限公司 一种基于文件的数据库同步方法
CN104036043A (zh) * 2014-07-01 2014-09-10 浪潮(北京)电子信息产业有限公司 一种mysql高可用的方法及管理节点
CN106570007A (zh) * 2015-10-09 2017-04-19 阿里巴巴集团控股有限公司 用于分布式缓存系统数据同步的方法和设备
CN105512284A (zh) * 2015-12-07 2016-04-20 上海爱数信息技术股份有限公司 基于事务形态数据和binlog文件的MySQL数据保护方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王津津: "基于SaltStack的云数据库自动化部署系统的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110765203A (zh) * 2019-09-29 2020-02-07 烽火通信科技股份有限公司 一种容器MySQL主从同步及性能采集实现方法及系统
CN110750594B (zh) * 2019-09-30 2023-05-30 上海视云网络科技有限公司 一种基于mysql增量日志实时跨网络数据库同步方法
CN110750594A (zh) * 2019-09-30 2020-02-04 上海视云网络科技有限公司 一种基于mysql增量日志实时跨网络数据库同步方法
CN111259072A (zh) * 2020-01-08 2020-06-09 广州虎牙科技有限公司 数据同步方法、装置、电子设备和计算机可读存储介质
CN111259072B (zh) * 2020-01-08 2023-11-14 广州虎牙科技有限公司 数据同步方法、装置、电子设备和计算机可读存储介质
CN111340414A (zh) * 2020-02-14 2020-06-26 上海东普信息科技有限公司 云仓大数据处理方法、云仓系统、计算机设备和存储介质
CN111930466A (zh) * 2020-05-28 2020-11-13 武汉达梦数据库有限公司 一种基于Kubernetes的数据同步环境部署方法和装置
CN111651523B (zh) * 2020-05-29 2022-09-16 烽火通信科技股份有限公司 一种Kubernetes容器平台的MySQL数据同步方法及系统
CN111651523A (zh) * 2020-05-29 2020-09-11 烽火通信科技股份有限公司 一种Kubernetes容器平台的MySQL数据同步方法及系统
CN112286729B (zh) * 2020-11-03 2023-02-21 浪潮云信息技术股份公司 一种指定时间恢复的方法
CN112286729A (zh) * 2020-11-03 2021-01-29 浪潮云信息技术股份公司 一种指定时间恢复的方法
CN112579613B (zh) * 2020-12-31 2023-02-17 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 数据库集群差异比对与数据同步的方法、系统及介质
CN112579613A (zh) * 2020-12-31 2021-03-30 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 数据库集群差异比对与数据同步的方法、系统及介质
CN113297173A (zh) * 2021-05-24 2021-08-24 阿里巴巴新加坡控股有限公司 分布式数据库集群管理方法及装置、电子设备
CN113297173B (zh) * 2021-05-24 2023-10-31 阿里巴巴新加坡控股有限公司 分布式数据库集群管理方法及装置、电子设备
CN113596190A (zh) * 2021-07-23 2021-11-02 浪潮云信息技术股份公司 基于Kubernetes的应用分布式多活系统及方法

Similar Documents

Publication Publication Date Title
CN109189860A (zh) 一种基于Kubernetes系统的MySQL主备增量同步方法
WO2019154394A1 (zh) 分布式数据库集群系统、数据同步方法及存储介质
CN102891849B (zh) 业务数据同步方法、恢复方法及装置和网络设备
EP2790112B1 (en) Method and system for data synchronization and data access apparatus
US8935205B2 (en) System and method of performing snapshot isolation in distributed databases
CN103345470B (zh) 一种数据库容灾方法、系统及服务器
US10565071B2 (en) Smart data replication recoverer
KR101662212B1 (ko) 부분동기화 지원 데이터베이스 관리 시스템 및 데이터베이스 관리 시스템에서 부분동기화 방법
CN106776121B (zh) 一种数据灾备装置、系统及方法
US20110184915A1 (en) Cluster restore and rebuild
CN101706795A (zh) 主备服务器上数据库数据同步方法
CN105069160A (zh) 一种基于自主可控数据库的高可用性方法及构架
CN111078667B (zh) 一种数据迁移的方法以及相关装置
CN105574187A (zh) 一种异构数据库复制事务一致性保障方法及系统
CN108614876B (zh) 一种基于Redis数据库的系统和数据处理方法
US20120278429A1 (en) Cluster system, synchronization controlling method, server, and synchronization controlling program
CN102317913A (zh) 一种事务恢复方法和事务恢复装置
US9612921B2 (en) Method and system for load balancing a distributed database providing object-level management and recovery
CN103729391A (zh) 能够重新启动事务的客户端装置和数据库服务器及方法
US8977897B2 (en) Computer-readable recording medium, data management method, and storage device
CN110489491B (zh) 一种适用于a/b网双集群的全量数据同步装置
US8918364B1 (en) Online mirror state transitioning in databases
CN114490570A (zh) 生产数据同步方法、装置、数据同步系统及服务器
US10275509B2 (en) Replica checkpointing without quiescing
US20150370664A1 (en) Redundant system and redundancy method

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190111