CN110765203B - 一种容器MySQL主从同步及性能采集实现方法及系统 - Google Patents

一种容器MySQL主从同步及性能采集实现方法及系统 Download PDF

Info

Publication number
CN110765203B
CN110765203B CN201910936899.0A CN201910936899A CN110765203B CN 110765203 B CN110765203 B CN 110765203B CN 201910936899 A CN201910936899 A CN 201910936899A CN 110765203 B CN110765203 B CN 110765203B
Authority
CN
China
Prior art keywords
slave
mysql
library
container
master
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.)
Active
Application number
CN201910936899.0A
Other languages
English (en)
Other versions
CN110765203A (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.)
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Fiberhome Telecommunication Technologies 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 Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN201910936899.0A priority Critical patent/CN110765203B/zh
Publication of CN110765203A publication Critical patent/CN110765203A/zh
Application granted granted Critical
Publication of CN110765203B publication Critical patent/CN110765203B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种容器MySQL主从同步及性能采集实现方法及系统。该方法包括:在Kubernetes平台上创建MySQL主从数据库系统,所述MySQL主从数据库系统包括主库及从库,所述主库包括mysql主节点容器、数据发送端容器和主库mysql‑exporter容器,所述主库mysql‑exporter容器用来采集主库mysql性能参数,所述从库包括mysql从节点容器、数据接收端容器和从库mysql‑exporter容器,所述从库mysql‑exporter容器用来采集从库mysql性能参数,从而可以实现对主备节点的性能参数进行采集和监控。

Description

一种容器MySQL主从同步及性能采集实现方法及系统
技术领域
本发明涉及云计算技术领域,尤其涉及一种容器MySQL主从同步及性能采集实现方法及系统。
背景技术
云计算技术领域中,容器技术的出现,改变了应用的运行形态,以kubernetes为代表容器编排系统使得组织、管理大规模容器应用变的方便、自动化。同时,kubernetes也不局限于任何一种编程语言,对现有的编程语言,编程框架,中间件等没有任何侵入性,现有的应用很容易迁移到kubernetes平台。正是由于kubernetes平台这种无侵入性,可以利用现有的MySQL数据备份技术应用到、监控技术,方便、低成本地将Mysql主备集群、监控服务迁移到kubernetes,实现了MySQL主备服务一种全新的部署,管理方式。然而,现有技术中这种基于kubernetes的MySQL数据库系统无法对主备节点的性能参数进行采集,以保障MySQL系统的平稳运行。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提出了一种基于容器的MySQL主从同步及性能采集实现方法及系统,能够解决现有技术中基于kubernetes的MySQL主从系统实现及MySQL性能采集监问题。
根据本发明的一个方面,本发明的一种容器MySQL主从同步及性能采集实现方法,在kubernetes平台上创建MySQL主从数据库系统,该MySQL主从数据库系统包括主库及从库,主库包括mysql主节点容器、数据发送端容器和主库mysql-exporter容器,主库mysql-exporter容器用来获取主库mysql性能参数,从库包括mysql从节点容器、数据接收端容器和从库mysql-exporter容器,从库mysql-exporter容器用来获取从库mysql性能参数。
作为本发明的进一步改进,该MySQL主从数据库系统支持多个从库,从库数量可以根据用户需求的动态增加或减少。
作为本发明的进一步改进,还包括启动主库和启动从库;
启动主库包括:
启动mysql主节点容器,启动前设置开启binlog服务以记录增量数据;
启动数据发送端容器,设置监听服务端口,设置全量备份数据的存储位置;
启动主库mysql-exporter容器,定期采集主库mysql性能参数;
主库通过创建Kubernetes service资源对外暴露服务,且主库对外只提供读服务;
启动从库包括:
启动所从库,对从库进行初始化,从数据发送端容器获取全量备份数据,并将全量备份数据保存在mysql从节点容器的数据目录;
启动mysql从节点容器和数据接收端容器,在数据接收端容器恢复全量备份数据,实现主库和从库的基础数据同步;
启动从库mysql-exporter容器,定期采集从库mysql性能参数;
从库通过创建Kubernetes service资源对外暴露服务,且从库mysql对外只提供读服务。
作为本发明的进一步改进,启动主库还包括:
启动定时任务,定期对主库数据进行备份。
作为本发明的进一步改进,恢复全量备份数据并获取增量数据具体是:
将全量备份数据恢复到mysql从节点容器的数据目录;
利用全量备份数据保存的binlog文件和位置完成对从库的主从同步点配置,并且启动mysql slave线程;
在数据接收端容器内配置mysql用户信息;
运行数据接收端服务,启动监听端口;
启动mysql slave线程后,slave IO线程获取主库binlog文件,slave SQL线程利用binlog文件获取增量数据。
作为本发明的进一步改进,采用myqldump工具定期对主库数据进行备份。
作为本发明的进一步改进,采用myqldump工具将全量备份数据恢复到mysql从节点容器的数据目录。
根据本发明的另一个方面,本发明提供了一种基于Kubernetes的MySQL主从同步数据库系统,其特征在于,包括:
主库,主库包括mysql主节点容器、数据发送端容器和主库mysql-exporter容器,主库mysql-exporter容器用来采集主库mysql性能参数;
从库,从库包括mysql从节点容器、数据接收端容器和从库mysql-exporter容器,从库mysql-exporter容器用来采集从库mysql性能参数。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有有益效果:创建MySQL系统的主库和从库时,创建有mysql-exporter容器,可以实现对主备节点的性能参数进行采集和监控,例如可以监控MySQL主从数据库的稳定性、吞吐量、连接情况、缓冲池使用情况、查询性能等各项指标,可以保障MySQL系统的平稳运行。并且,可以实现创建多个从库,从而实现MySQL主从数据库系统根据应用需求自动弹性伸缩。另外还可以实现定期对数据进行全量备份,减少数据丢失的风险。
附图说明
图1是本发明实施例一提供的MySQL主从数据库系统结构示意图;
图2是本发明实施例二提供的一种容器MySQL主从同步及性能采集实现方法的从库启动流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明一实施例的一种容器MySQL主从同步及性能采集实现方法,在Kubernetes平台上创建MySQL主从数据库系统,该MySQL主从数据库系统结构如图1所示,包括主库(Master POD)及从库(slave POD),其中,主库包括mysql主节点容器、数据发送端容器和主库mysql-exporter容器,mysql-exporter容器是用来获取主库mysql性能参数。其中,从库包括mysql从节点容器、数据接收端容器和从库mysql-exporter容器,所述从库mysql-exporter容器用来获取从库mysql性能参数。这样,在创建MySQL系统的主库和从库时,创建有mysql-exporter容器,可以实现对主备节点的性能参数进行采集和监控,例如可以监控MySQL主从数据库的稳定性、吞吐量、连接情况、缓冲池使用情况、查询性能等各项指标,可以保障MySQL系统的平稳运行。
数据发送端容器可以是运行nc服务的容器,数据接收端容器可以是运行nc服务的容器。
可选地,该MySQL主从数据库系统可以包括主库及多个从库,从库数量可以根据用户需求的动态增加或减少。在K8S平台,从库由一组定义相同的资源创建,即同一份yaml文件的资源创建,它们的数量可以动态增加或减少。这样,可以实现MySQL主从数据库系统根据应用需求自动弹性伸缩,slave POD组可以根据需求动态增加或减少数量而不影响其他slave POD的运行。并且可以在一个从库宕机无法工作时,其他从库替代该故障从库继续工作,会进一步保障系统的稳定性。
本发明另一实施例的一种容器MySQL主从同步及性能采集实现方法,在创建MySQL主从数据库系统后,进入启动主库步骤和启动从库步骤。
主库启动包括步骤:
S11,启动MySQL主节点容器,启动前设置开启binlog服务,来记录增量数据;
S12,启动数据发送端容器,设置监听服务端口,设置全量备份数据的存储位置。
S13,启动主库Mysql-exporter容器,定期采集msyql性能数据。
S14,Master POD通过创建K8S service资源对外暴露服务,且主库对外只提供读服务。
S15,可选地,在Master POD启动后,启动定时任务,定期对主库数据进行备份。在平台内部启动一个定时任务,定时任务首次启动时,可以利用mysqldump工具对主节点数据备份一次,以后在固定时间进行数据备份,并保留最近n次备份数据。这样,可以定期对数据进行全量备份,减少数据丢失的风险。
如图2所示,从库启动流程包括步骤:
S21,启动slave POD,对slave POD进行初始化。
slave POD一次启动时,在初始化阶段,会根据数据库目录是否有数据来决定是否请求全量备份数据。对于新创建的slave POD,在初始化阶段会启动nc命令,从master POD的数据发送端获取全量备份数据,并将全量数据保存至mysql容器的数据目录。
S22,初始化阶段完成后,启动mysql从节点容器和数据接收端容器,恢复全量备份数据并获取增量数据,实现所述主库和所述从库的数据同步。以数据接收端容器是nc服务容器为例,具体包括步骤:
1)将S21步骤保存的全量备份数据恢复到MySql数据目录。
可以利用myqldump对全量备份数据做恢复。
2)在nc容器利用全量备份数据保存的binlog文件和位置完成对slave POD数据库的主从同步点配置,并且启动mysql slave线程。
3)在nc容器配置mysql用户信息;
4)运行nc服务,保持nc容器处于运行中。
5)MySQL容器的slave线程被启动后,slave IO线程获取主库binlog文件,slaveSQL线程利用binlog文件做增量数据回放,同步数据。
S23,启动从库mysql-exporter容器,定时采集从库mysql性能数据。
S24,Slave POD通过创建K8S service对外暴露服务,且mysql对外只提供读服务。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种容器MySQL主从同步及性能采集实现方法,其特征在于,
在Kubernetes平台上创建MySQL主从数据库系统,所述MySQL主从数据库系统包括主库及从库,所述主库包括mysql主节点容器、数据发送端容器和主库mysql-exporter容器,所述主库mysql-exporter容器用来获取所述主库mysql性能参数,所述从库包括mysql从节点容器、数据接收端容器和从库mysql-exporter容器,所述从库mysql-exporter容器用来获取所述从库mysql性能参数;
启动所述主库和启动所述从库;
启动所述主库包括:
启动所述mysql主节点容器,启动前设置开启binlog服务来记录增量数据;
启动所述数据发送端容器,设置监听服务端口,设置全量备份数据的存储位置;
启动所述主库mysql-exporter容器,定期采集所述主库mysql性能参数;
所述主库通过创建Kubernetes service资源对外暴露服务,且所述主库对外只提供读服务;
启动所述从库包括:
启动所述从库,对所述从库进行初始化,从所述存储位置获取所述全量备份数据,并将所述全量备份数据保存在所述mysql从节点容器的数据目录;
启动所述mysql从节点容器和所述数据接收端容器,恢复所述全量备份数据并获取所述增量数据,实现所述主库和所述从库的数据同步;
启动所述从库mysql-exporter容器,定期采集所述从库mysql性能参数;
所述从库通过创建Kubernetes service资源对外暴露服务,且所述从库mysql对外只提供读服务。
2.如权利要求1所述的一种容器MySQL主从同步及性能采集实现方法,其特征在于,
所述MySQL主从数据库系统包括多个所述从库,所述从库数量可以根据用户需求的动态增加或减少。
3.如权利要求1所述的一种容器MySQL主从同步及性能采集实现方法,其特征在于,所述启动所述主库还包括:
启动定时任务,定期对所述主库数据进行备份。
4.如权利要求1或3所述的一种容器MySQL主从同步及性能采集实现方法,其特征在于,
所述恢复所述全量备份数据并获取所述增量数据具体是:
将所述全量备份数据恢复到所述mysql从节点容器的数据目录;
利用所述全量备份数据保存的binlog文件和位置完成对所述从库的主从同步点配置,并且启动mysql slave线程;
在所述数据接收端容器配置mysql用户信息;
运行数据接收端服务,启动监听端口;
启动mysql slave线程后,slave IO线程获取主库binlog文件,slave SQL线程利用binlog文件获取所述增量数据。
5.如权利要求3所述的一种容器MySQL主从同步及性能采集实现方法,其特征在于,
采用myqldump工具定期对所述主库数据进行备份。
6.如权利要求4所述的一种容器MySQL主从同步及性能采集实现方法,其特征在于,
采用myqldump工具将所述全量备份数据恢复到所述mysql从节点容器的数据目录。
7.一种基于Kubernetes的MySQL主从同步数据库系统,其特征在于,包括:
主库,所述主库包括mysql主节点容器、数据发送端容器和主库mysql-exporter容器,所述主库mysql-exporter容器用来采集所述主库mysql性能参数;
从库,所述从库包括mysql从节点容器、数据接收端容器和从库mysql-exporter容器,所述从库mysql-exporter容器用来采集所述从库mysql性能参数;
所述主库的启动步骤包括:
启动所述mysql主节点容器,启动前设置开启binlog服务来记录增量数据;
启动所述数据发送端容器,设置监听服务端口,设置全量备份数据的存储位置;
启动所述主库mysql-exporter容器,定期采集所述主库mysql性能参数;
所述主库通过创建Kubernetes service资源对外暴露服务,且所述主库对外只提供读服务;
启动所述从库的步骤包括:
启动所述从库,对所述从库进行初始化,从所述存储位置获取所述全量备份数据,并将所述全量备份数据保存在所述mysql从节点容器的数据目录;
启动所述mysql从节点容器和所述数据接收端容器,恢复所述全量备份数据并获取所述增量数据,实现所述主库和所述从库的数据同步;
启动所述从库mysql-exporter容器,定期采集所述从库mysql性能参数;
所述从库通过创建Kubernetes service资源对外暴露服务,且所述从库mysql对外只提供读服务。
8.如权利要求7所述的一种基于Kubernetes的MySQL主从同步数据库系统,其特征在于,包括多个所述从库,所述从库数量可以根据用户需求的动态增加或减少。
CN201910936899.0A 2019-09-29 2019-09-29 一种容器MySQL主从同步及性能采集实现方法及系统 Active CN110765203B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910936899.0A CN110765203B (zh) 2019-09-29 2019-09-29 一种容器MySQL主从同步及性能采集实现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910936899.0A CN110765203B (zh) 2019-09-29 2019-09-29 一种容器MySQL主从同步及性能采集实现方法及系统

Publications (2)

Publication Number Publication Date
CN110765203A CN110765203A (zh) 2020-02-07
CN110765203B true CN110765203B (zh) 2022-10-18

Family

ID=69329199

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910936899.0A Active CN110765203B (zh) 2019-09-29 2019-09-29 一种容器MySQL主从同步及性能采集实现方法及系统

Country Status (1)

Country Link
CN (1) CN110765203B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111930466A (zh) * 2020-05-28 2020-11-13 武汉达梦数据库有限公司 一种基于Kubernetes的数据同步环境部署方法和装置
CN111651523B (zh) * 2020-05-29 2022-09-16 烽火通信科技股份有限公司 一种Kubernetes容器平台的MySQL数据同步方法及系统
CN113572831B (zh) * 2021-07-21 2024-03-15 重庆星环人工智能科技研究院有限公司 Kubernetes集群间的通信方法、计算机设备及介质
CN115934428B (zh) * 2023-01-10 2023-05-23 湖南三湘银行股份有限公司 一种mysql数据库的主灾备切换方法、装置及电子设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106156318B (zh) * 2016-07-05 2022-08-16 武汉斗鱼网络科技有限公司 一种实现多节点数据库高可用的系统及方法
CN107203617B (zh) * 2017-05-24 2019-03-26 杭州铭师堂教育科技发展有限公司 基于MHA的mysql在线迁移系统及方法
US10740315B2 (en) * 2017-10-26 2020-08-11 Sap Se Transitioning between system sharing types in multi-tenancy database systems
CN108848157A (zh) * 2018-06-12 2018-11-20 郑州云海信息技术有限公司 一种Kubernetes集群容器监控的方法和装置
CN109189860A (zh) * 2018-10-19 2019-01-11 山东浪潮云信息技术有限公司 一种基于Kubernetes系统的MySQL主备增量同步方法

Also Published As

Publication number Publication date
CN110765203A (zh) 2020-02-07

Similar Documents

Publication Publication Date Title
CN110765203B (zh) 一种容器MySQL主从同步及性能采集实现方法及系统
CN105426439B (zh) 一种元数据的处理方法和装置
US20140089259A1 (en) Operation method and apparatus for data storage system
CN111182067B (zh) 一种基于星际文件系统ipfs的数据写入方法及设备
CN113987064A (zh) 数据处理方法、系统及设备
CN111651523B (zh) 一种Kubernetes容器平台的MySQL数据同步方法及系统
WO2020063600A1 (zh) 数据容灾方法与站点
CN107729515B (zh) 一种数据同步的方法、装置及存储介质
CN111078667A (zh) 一种数据迁移的方法以及相关装置
CN103902405A (zh) 一种准连续性数据复制方法及装置
CN106339387B (zh) 一种数据库集群中新增服务器的数据同步方法及装置
CN100512474C (zh) 一种通讯系统主备板存储版本自动同步的方法
CN111399764A (zh) 数据存储方法、读取方法、装置、设备及存储介质
CN115658390A (zh) 容器容灾方法、系统、装置、设备及计算机可读存储介质
CN103428288A (zh) 基于分区状态表和协调节点的副本同步方法
CN105323271B (zh) 一种云计算系统以及云计算系统的处理方法和装置
CN108011783B (zh) 一种诊断服务器的备份方法和备份系统
CN112181049B (zh) 集群时间同步方法、装置、系统、设备及可读存储介质
CN105007172A (zh) 一种hdfs高可用性方案的实现方法
CN107623705B (zh) 基于视频云存储系统的存储模式升级方法、装置和系统
CN112243030A (zh) 分布式存储系统的数据同步方法、装置、设备及介质
CN111581221B (zh) 一种分布式多站融合系统信息冗余存储与重构的方法
CN113515574B (zh) 一种数据同步方法及装置
CN115237674A (zh) 基于opendaylight的SDN控制器的数据备份方法及设备、介质
CN104601693A (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