CN105956207A - 一种基于binlog的可配置的mysql数据库实时同步方法 - Google Patents
一种基于binlog的可配置的mysql数据库实时同步方法 Download PDFInfo
- Publication number
- CN105956207A CN105956207A CN201610525981.0A CN201610525981A CN105956207A CN 105956207 A CN105956207 A CN 105956207A CN 201610525981 A CN201610525981 A CN 201610525981A CN 105956207 A CN105956207 A CN 105956207A
- Authority
- CN
- China
- Prior art keywords
- server
- data
- binlog
- mysql
- file
- 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
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于binlog的可配置的mysql数据库实时同步方法,该方法基于mysql的动作事件触发,用户在页面对***的配置操作影响的数据库,配置文件以及与底层***的交互动作都可以在一次mysql动作事件中在备份服务器执行,也就是说用户在主服务器做的某个动作可以实时完整的复制到备份服务器。保证热备的两台服务器配置一致,在切换后能正常提供服务,提高***的可靠性和稳定性。
Description
技术领域
本发明涉及数据同步领域,尤其涉及一种基于binlog的可配置的mysql数据库实时同步方法。
背景技术
热备是一种服务器的容灾方式,是服务器的一种备份形式,当主服务器出现问题,***自动将备份服务器启用,完成服务的切换。所以两台服务器之间的配置应该同步,虽然mysql提供了数据库复制功能,可以实现两个数据库同步,同时还有很多文件同步的软件可以同步文件。但是这种方式数据库和文件的同步是相互独立的,有可能造成数据库和配置文件不一致,而且在一些与底层***有交互的应用中,那些交互动作无法被同步,造成两台服务器不一致,热备切换后某些功能无法正常运行。
发明内容
本发明的目的在于针对现有技术在数据同步过程中的问题,提供一种基于binlog的可配置的mysql数据库实时同步方法。
本发明是在mysql的binlog基础上,通过mysql的sql操作来触发同步动作,同时用配置文件灵活控制同步的表以及需要特殊处理的数据。该方法包括以下步骤:
步骤1:将待同步的服务器A和服务器B均配置binlog,并且均配置成主机;使用logfile文件来存储当前binlog的文件名,logpos文件来存储当前binlog的位置;在配置文件中配置需要同步的表以及需要特殊处理的表;
步骤2:服务器A与服务器B之间进行初始化,使两台主机处于相同的初始状态;
(2.1)服务器A将需要同步的表、配置文件以及logfile和logpos文件打包,通过rsync传送到服务器B;
(2.2)服务器B通过服务器A传输过来的文件包覆盖当前表的内容以及配置文件的内容,执行初始化脚本;
步骤3:服务器B通过服务器A的binlog进行同步;
(3.1)服务器B根据服务器A同步过来的logfile与logpos文件确定读取binlog的位置,读取服务器A的一条binlog数据,并更新logfile与logpos文件;
(3.2)如果读取的数据是不需要同步的,则跳转到步骤3.1;
(3.3)如果读取的数据是需要特殊处理的数据,调用处理特殊功能的API,然后跳转到步骤3.1;
(3.4)判断sql语句是什么操作类型,如果是insert操作,则跳转到步骤3.5,如果是update操作,则跳转到步骤3.6,如果是delete操作,则跳转到步骤3.7;
(3.5)***对应的mysql数据,然后以表名、主键和主键值为参数调用API完成新数据***后的交互操作;
(3.6)首先以表名、主键和主键值为参数调用API完成数据更新前的交互操作,然后更新mysql的数据,再调用API完成数据更新后的交互操作;
(3.7)首先以表名、主键和主键值为参数调用API完成数据删除前的交互操作,然后删除mysql的数据;
(3.8)一条数据处理完成,跳转到步骤3.1。
本发明的有益效果是:本发明提出的数据同步方法,由于该方法基于mysql的动作事件触发,用户在页面对***的配置操作影响的数据库,配置文件以及与底层***的交互动作都可以在一次mysql动作事件中在备份服务器执行,也就是说用户在主服务器做的某个动作可以实时完整的复制到备份服务器。保证热备的两台服务器配置一致,在切换后能正常提供服务,提高***的可靠性和稳定性。
附图说明
图1是数据同步的流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细说明。
如图1所示,本发明是在mysql的binlog基础上,通过mysql的sql操作来触发同步动作,同时用配置文件灵活控制同步的表以及需要特殊处理的数据。具体的实现步骤如下:
步骤1:将待同步的服务器A和服务器B均配置binlog,并且均配置成主机;使用logfile文件来存储当前binlog的文件名,logpos文件来存储当前binlog的位置。在配置文件中配置需要同步的表以及需要特殊处理的表。
步骤2:服务器A与服务器B之间进行初始化,使两台主机处于相同的初始状态;
(2.1)服务器A将需要同步的表、配置文件以及logfile和logpos文件打包,通过rsync传送到服务器B;
(2.2)服务器B通过服务器A传输过来的文件包覆盖当前表的内容以及配置文件的内容,执行初始化脚本;
步骤3:服务器B通过服务器A的binlog进行同步;
(3.1)服务器B根据服务器A同步过来的logfile与logpos文件确定读取binlog的位置,读取服务器A的一条binlog数据,并更新logfile与logpos文件;
(3.2)如果读取的数据是不需要同步的,则跳转到步骤3.1;
(3.3)如果读取的数据是需要特殊处理的数据,例如某张表中存储着主机名、网关以及DNS,其中主机名是不能被同步的,其它字段都需要同步,此时就可以调用处理这张表的特定API来完成这个同步,然后跳转到步骤3.1;
(3.4)判断sql语句是什么操作类型,如果是insert操作,则跳转到步骤3.5,如果是update操作,则跳转到步骤3.6,如果是delete操作,则跳转到步骤3.7;
(3.5)***对应的mysql数据,然后以表名、主键和主键值为参数调用API完成新数据***后的交互操作。例如新增用户操作,底层操作***也需要创建该用户,而且用户表里存储的密码是加密的时候。就需要先调用API解密密码,然后根据解密出来的密码创建对应的用户;
(3.6)首先以表名、主键和主键值为参数调用API完成数据更新前的交互操作,然后更新mysql的数据,再调用API完成数据更新后的交互操作。例如***中有路由配置功能,在修改路由配置之后需要先将原先的路由规则删除,再添加修改之后的路由规则。所以在mysql更新数据前后需要分别调用删除路由规则的API和添加路由规则的API;
(3.7)首先以表名、主键和主键值为参数调用API完成数据删除前的交互操作,然后删除mysql的数据。例如删除用户操作,先将底层***的用户删除再删除mysql数据;
(3.8)一条数据处理完成,跳转到步骤3.1。
Claims (4)
1.一种基于binlog的可配置的mysql数据库实时同步方法,其特征在于,该方法包括以下步骤:
步骤1:将待同步的服务器A和服务器B均配置binlog,并且均配置成主机;使用logfile文件来存储当前binlog的文件名,logpos文件来存储当前binlog的位置;在配置文件中配置需要同步的表以及需要特殊处理的表;
步骤2:服务器A与服务器B之间进行初始化,使两台主机处于相同的初始状态;
(2.1)服务器A将需要同步的表、配置文件以及logfile和logpos文件打包,通过rsync传送到服务器B;
(2.2)服务器B通过服务器A传输过来的文件包覆盖当前表的内容以及配置文件的内容,执行初始化脚本;
步骤3:服务器B通过服务器A的binlog进行同步;
(3.1)服务器B根据服务器A同步过来的logfile与logpos文件确定读取binlog的位置,读取服务器A的一条binlog数据,并更新logfile与logpos文件;
(3.2)如果读取的数据是不需要同步的,则跳转到步骤3.1;
(3.3)如果读取的数据是需要特殊处理的数据,调用处理特殊功能的API,然后跳转到步骤3.1;
(3.4)判断sql语句是什么操作类型,如果是insert操作,则跳转到步骤3.5,如果是update操作,则跳转到步骤3.6,如果是delete操作,则跳转到步骤3.7;
(3.5)***对应的mysql数据,然后以表名、主键和主键值为参数调用API完成新数据***后的交互操作;
(3.6)首先以表名、主键和主键值为参数调用API完成数据更新前的交互操作,然后更新mysql的数据,再调用API完成数据更新后的交互操作;
(3.7)首先以表名、主键和主键值为参数调用API完成数据删除前的交互操作,然后删除mysql的数据;
(3.8)一条数据处理完成,跳转到步骤3.1。
2.根据权利要求1所述的一种基于binlog的可配置的mysql数据库实时同步方法,其特征在于,所述步骤3.5中,对于新增用户操作,底层操作***需要创建该用户,且用户表里存储的密码是加密时候,先调用API解密密码,然后根据解密出来的密码创建对应的用户。
3.根据权利要求1所述的一种基于binlog的可配置的mysql数据库实时同步方法,其特征在于,所述步骤3.6中,***中有路由配置功能时,在修改路由配置之后先将原先的路由规则删除,再添加修改之后的路由规则,所以在mysql更新数据前后分别调用删除路由规则的API和添加路由规则的API。
4.根据权利要求1所述的一种基于binlog的可配置的mysql数据库实时同步方法,其特征在于,所述步骤3.7中,删除用户操作时,先将底层***的用户删除再删除mysql数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610525981.0A CN105956207A (zh) | 2016-07-01 | 2016-07-01 | 一种基于binlog的可配置的mysql数据库实时同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610525981.0A CN105956207A (zh) | 2016-07-01 | 2016-07-01 | 一种基于binlog的可配置的mysql数据库实时同步方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105956207A true CN105956207A (zh) | 2016-09-21 |
Family
ID=56903376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610525981.0A Pending CN105956207A (zh) | 2016-07-01 | 2016-07-01 | 一种基于binlog的可配置的mysql数据库实时同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105956207A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106485465A (zh) * | 2016-09-22 | 2017-03-08 | 济南浪潮高新科技投资发展有限公司 | 一种可配置的定时数据同步方法 |
CN107291926A (zh) * | 2017-06-29 | 2017-10-24 | 搜易贷(北京)金融信息服务有限公司 | 一种binlog分析方法 |
CN108958972A (zh) * | 2018-06-25 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种mysql数据库备份的方法 |
CN113741908A (zh) * | 2021-08-25 | 2021-12-03 | 杭州安恒信息技术股份有限公司 | 高可用性部署方法、装置、电子装置和存储介质 |
CN117785568A (zh) * | 2024-02-27 | 2024-03-29 | 广东保伦电子股份有限公司 | 一种双主双机热备方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030037020A1 (en) * | 2000-02-22 | 2003-02-20 | Lars Novak | Method and apparatus for synchronizing databases of portable devices without change logs |
US20130318044A1 (en) * | 2010-07-27 | 2013-11-28 | Oracle International Corporation | Mysql database heterogeneous log based replication |
CN104601548A (zh) * | 2014-12-24 | 2015-05-06 | 深圳市大成天下信息技术有限公司 | 一种加密文件的生成方法、装置和计算设备 |
CN104657382A (zh) * | 2013-11-21 | 2015-05-27 | 阿里巴巴集团控股有限公司 | 用于MySQL主从服务器数据一致性检测的方法和装置 |
CN104951474A (zh) * | 2014-03-31 | 2015-09-30 | 阿里巴巴集团控股有限公司 | 一种用于获取MySQL binlog增量日志的方法和装置 |
CN105512284A (zh) * | 2015-12-07 | 2016-04-20 | 上海爱数信息技术股份有限公司 | 基于事务形态数据和binlog文件的MySQL数据保护方法 |
-
2016
- 2016-07-01 CN CN201610525981.0A patent/CN105956207A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030037020A1 (en) * | 2000-02-22 | 2003-02-20 | Lars Novak | Method and apparatus for synchronizing databases of portable devices without change logs |
US20130318044A1 (en) * | 2010-07-27 | 2013-11-28 | Oracle International Corporation | Mysql database heterogeneous log based replication |
CN104657382A (zh) * | 2013-11-21 | 2015-05-27 | 阿里巴巴集团控股有限公司 | 用于MySQL主从服务器数据一致性检测的方法和装置 |
CN104951474A (zh) * | 2014-03-31 | 2015-09-30 | 阿里巴巴集团控股有限公司 | 一种用于获取MySQL binlog增量日志的方法和装置 |
CN104601548A (zh) * | 2014-12-24 | 2015-05-06 | 深圳市大成天下信息技术有限公司 | 一种加密文件的生成方法、装置和计算设备 |
CN105512284A (zh) * | 2015-12-07 | 2016-04-20 | 上海爱数信息技术股份有限公司 | 基于事务形态数据和binlog文件的MySQL数据保护方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106485465A (zh) * | 2016-09-22 | 2017-03-08 | 济南浪潮高新科技投资发展有限公司 | 一种可配置的定时数据同步方法 |
CN107291926A (zh) * | 2017-06-29 | 2017-10-24 | 搜易贷(北京)金融信息服务有限公司 | 一种binlog分析方法 |
CN107291926B (zh) * | 2017-06-29 | 2020-08-18 | 搜易贷(北京)金融信息服务有限公司 | 一种binlog分析方法 |
CN108958972A (zh) * | 2018-06-25 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种mysql数据库备份的方法 |
CN113741908A (zh) * | 2021-08-25 | 2021-12-03 | 杭州安恒信息技术股份有限公司 | 高可用性部署方法、装置、电子装置和存储介质 |
CN117785568A (zh) * | 2024-02-27 | 2024-03-29 | 广东保伦电子股份有限公司 | 一种双主双机热备方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105956207A (zh) | 一种基于binlog的可配置的mysql数据库实时同步方法 | |
US9648059B2 (en) | System and methods for multi-user CAx editing conflict management | |
US9934242B2 (en) | Replication of data between mirrored data sites | |
US7620721B2 (en) | Pre-existing content replication | |
CN103220358B (zh) | 一种多终端在线文件同步方法、***、服务器及终端设备 | |
CN110138588A (zh) | 配置文件自动化管理方法和***、配置管理平台和客户端 | |
US9515878B2 (en) | Method, medium, and system for configuring a new node in a distributed memory network | |
US10216589B2 (en) | Smart data replication recoverer | |
CN107667351A (zh) | 用于移动设备上的自动基于云的全数据备份和恢复的***和方法 | |
CN106685691A (zh) | 物联网***中终端设备的高效更新配置方法及*** | |
US8612799B2 (en) | Method and apparatus of backing up subversion repository | |
CN106131123A (zh) | 三层架构的远程资源同步方法及*** | |
US11372727B2 (en) | Method, device, and computer-readable storage medium for managing storage system | |
CN103581262A (zh) | 一种主备数据同步方法、装置和*** | |
CN109947592A (zh) | 一种数据同步方法、装置以及相关设备 | |
CN107621994A (zh) | 一种数据快照创建的方法及装置 | |
CN105939203B (zh) | 表项同步方法以及装置 | |
CN108881452B (zh) | 一种数据同步的方法、装置及存储介质 | |
US11188422B2 (en) | Techniques for preserving clone relationships between files | |
WO2021208401A1 (zh) | 现代应用的持续数据保护***及方法 | |
CN111522688B (zh) | 分布式***的数据备份方法及装置 | |
CN111125001A (zh) | 快照复制方法、电子设备和计算机程序产品 | |
CN113051342A (zh) | 一种轻量化双机切换的方法及*** | |
JP4715777B2 (ja) | レプリケーション方法及びストレージ装置並びにプログラム | |
KR101748912B1 (ko) | 분산 저장 환경에서 데이터 저장 시스템 및 데이터 저장 시스템이 포함하는 클러스터의 업그레이드, 확장 및 축소를 위한 클러스터 관리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160921 |
|
RJ01 | Rejection of invention patent application after publication |