CN110019495A - 基于事务日志分析的单导***中mysql数据库同步技术 - Google Patents
基于事务日志分析的单导***中mysql数据库同步技术 Download PDFInfo
- Publication number
- CN110019495A CN110019495A CN201710625015.0A CN201710625015A CN110019495A CN 110019495 A CN110019495 A CN 110019495A CN 201710625015 A CN201710625015 A CN 201710625015A CN 110019495 A CN110019495 A CN 110019495A
- Authority
- CN
- China
- Prior art keywords
- guiding systems
- single guiding
- mysql
- module
- mysql database
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (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
本发明公开了基于事务日志分析的单导***中mysql数据库同步技术,该发明使用分析mysql数据库事务日志binlog的方法,先把单导***模拟成源mysql数据库的从库,读取二进制日志流,然后结合mysql提供的binlog格式文档,对日志流进行解析,实现单导***中内外端mysql数据库同步。
Description
技术领域
本发明涉及一种互联网通信技术领域,特别涉及基于事务日志分析的单导***中mysql数据库同步技术。
背景技术
单导***是一种数据信息网络安全隔离***,具有数据信息的单向导入功能。单导***由内端和外端组成,外端模块TX只发送数据,内端模块RX只接收数据,数据信息只能从单导外端导入到单导内端。
单导***的mysql数据库同步要实现两个安全隔离的网络的跨平台的数据库信息单向同步,实现过程是单导的数据库同步模块从外端mysql数据库获取数据生成数据文档,由单导***发送模块将文档传入单导内端,再由单导内端的数据库同步模块把数据同步到目标数据库。
由于单向隔离特性不能使用数据库自带外部连接功能来传递数据库数据,现在常用的技术大多是通过触发器或select查询获取数据,本方案综合考虑各中实现方式优劣,采用解析mysql事务日志binlog的方式,分析操作数据,生成的数据写入文档,再由单导***进行同步。
发明内容
为克服上述现有技术的不足,解决现有技术中单导***中mysql数据库同步采用触发器或选择数据同步方案会对源数据库造成巨大负担和压力的缺点,采用了分析mysql事务日志binlog,解析出操作数据,再组装成sql语句同步到目标数据库的方案,实现单导***获取mysql数据库数据时不占用源数据库资源和不对源数据库造成压力和负担的目的。根据单导***的特点,该发明分成单导外端和单导内端部分。
单导外端部分包括:
1.日志读取模块:通过对mysql数据库事务日志binlog进行读取,并接收读取到的二进制日志流。
2.日志分析模块:把日志读取模块获取的二进制日志流进行解析,并转换成json格式。
3.外端数据发送模块:用于把数据发送到单导内端。
单导内端部分包括:
1.内端数据接收模块:用于接收单导外端发送过来的数据。
2.数据格式转换模块:把从外端接收到的json格式数据转换成sql格式。
3.数据库同步模块:把转换模块得到的sql格式语句同步到目标数据库。
本发明技术方案带来的有益效果:
本发明中使用的事务日志解析法进行单导***的数据库同步,能够避免占用源数据库资源,由于绕过了对源数据库的操作,纯粹对二进制的日志流进行解析,获取数据的速度极快,完全能够满足当前各种mysql大型生产环境数据库的同步要求,而且具有时延短、高吞吐量的特点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明提出的实施流程图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
该发明实施流程如下:
1、本发明方案使用的是解析mysql数据库的binlog日志来达到单导内外端数据库同步的效果,要使用binlog,必须要开启InnoDB引擎和启用binlog。如果mysql引擎不是InnoDB,可用如下方法开启:
1)关闭mysql的服务
2)修改my.ini或my.cnf文件:
将default-storage-engine=INNODB前的注释(#)去掉
将skip-innodb这行注释(加上#)
server_id=自定义不冲突的ID号
log-bin=mysql-bin
3)保存后重启mysql服务
2.日志读取模块先发送一个COM_BINLOG_DUMP类型的消息到源mysql数据库,把单导外端模拟成源mysql数据库的从机,然后调用mysql库函数cli_safe_read从源数据库获取binlog消息,并存储在缓冲区;
3.单导外端日志分析模块从日志缓冲区读取二进制日志流,根据mysql提供的日志格式说明,确定字段的值,结合mysql***表information_schema.columns确定字段的顺序和字段名,再转换成字段名-值键值对json的格式;
4.把json数据通过单导***外端的发送模块发送到单导内端;
5.单导内端接收从外端发送过来的json格式数据;
6.数据格式转换模块把接收到的json格式数据重组成sql语句;
7.通过数据库同步模块把转换模块得到的sql格式语句同步到目标数据库。
代码举例说明:
1.读取mysql事务日志需要先发送COM_BINLOG_DUMP类型消息到源数据库,把单导外端模拟成源数据库的从库,部分的代码如下:
2.经过上面的代码,即可进行下一步读取binlog的操作了,部分代码如下:
3.通过上面代码get_next_even函数,即可读取binlog的日志流,并保存在buf_len_pair缓冲区中,再通过日志分析模块,根据mysql提供的binlog格式说明文档,就能解析出里面的操作数据,然后再转换成json格式数据。可见,基于事务日志分析的单导***的mysql数据库同步是可行且高效的。
以上对本发明实施例所提供的基于事务日志分析的单导***中mysql数据库同步技术进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (4)
1.基于事务日志分析的单导***中mysql数据库同步技术,该发明在于单导***的mysql同步的事务日志解析,并把解析出来的操作数据转换成通用的Json格式,由单导***发送到隔离网络的另一端,再由单导***内端的数据库同步模块进行同步。
2.根据权利要求1所述的基于事务日志分析的单导***中mysql数据库同步技术,其特征在于:由单导外端和单导内端组成,使用单导***模拟成源mysql数据库的从库,读取二进制日志流,然后结合mysql提供的binlog格式文档,对日志流进行解析,实现单导***中内外端mysql数据库同步。
3.根据权利要求1所述的基于事务日志分析的单导***中mysql数据库同步技术,其特征在于:单导外端部分由以下模块组成,
s1.日志读取模块:通过对mysql数据库事务日志binlog进行读取,并接收读取到的二进制日志流;
s2.日志分析模块:把日志读取模块获取的二进制日志流进行解析,并转换成json格式;
s3.外端数据发送模块:用于把数据发送到单导内端。
4.根据权利要求1所述的基于事务日志分析的单导***中mysql数据库同步技术,其特征在于:单导内端部分由以下模块组成,
f1.内端数据接收模块:用于接收单导外端发送过来的数据;
f2.数据格式转换模块:把从外端接收到的json格式数据转换成sql格式;
f3.数据库同步模块:把转换模块得到的sql格式语句同步到目标数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710625015.0A CN110019495A (zh) | 2017-07-27 | 2017-07-27 | 基于事务日志分析的单导***中mysql数据库同步技术 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710625015.0A CN110019495A (zh) | 2017-07-27 | 2017-07-27 | 基于事务日志分析的单导***中mysql数据库同步技术 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110019495A true CN110019495A (zh) | 2019-07-16 |
Family
ID=67186005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710625015.0A Pending CN110019495A (zh) | 2017-07-27 | 2017-07-27 | 基于事务日志分析的单导***中mysql数据库同步技术 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019495A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110866022A (zh) * | 2019-10-24 | 2020-03-06 | 贝壳技术有限公司 | 基于日志文件的数据解析方法、***及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761318A (zh) * | 2014-01-27 | 2014-04-30 | 中国工商银行股份有限公司 | 一种关系型异构数据库数据同步的方法及*** |
EP2891994A1 (en) * | 2013-11-04 | 2015-07-08 | Guangdong Electronics Industry Institute Ltd. | Method for achieving automatic synchronization of multisource heterogeneous data resources |
CN106709043A (zh) * | 2016-12-30 | 2017-05-24 | 江苏瑞中数据股份有限公司 | 一种基于数据库日志的数据同步加载方法 |
-
2017
- 2017-07-27 CN CN201710625015.0A patent/CN110019495A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2891994A1 (en) * | 2013-11-04 | 2015-07-08 | Guangdong Electronics Industry Institute Ltd. | Method for achieving automatic synchronization of multisource heterogeneous data resources |
CN103761318A (zh) * | 2014-01-27 | 2014-04-30 | 中国工商银行股份有限公司 | 一种关系型异构数据库数据同步的方法及*** |
CN106709043A (zh) * | 2016-12-30 | 2017-05-24 | 江苏瑞中数据股份有限公司 | 一种基于数据库日志的数据同步加载方法 |
Non-Patent Citations (2)
Title |
---|
张旭刚等: "基于zookeeper和强一致性复制实现MySQL分布式数据库集群", 《微型电脑应用》 * |
蒋敏等: "一种基于Agent的数据同步方法", 《江南大学学报(自然科学版)》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110866022A (zh) * | 2019-10-24 | 2020-03-06 | 贝壳技术有限公司 | 基于日志文件的数据解析方法、***及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110245951B (zh) | 一种基于树形结构的联盟链主从多链共识方法 | |
CN109325072A (zh) | 一种基于CMSP实现跨网闸Oracle数据库同步的方法及装置 | |
CN108337236A (zh) | 一种基于Protobuf和HTTP/1.1的gRPC调用方法及装置 | |
US20150319238A1 (en) | Method, device and storage medium for data processing | |
CN108304473A (zh) | 数据源之间的数据传输方法和*** | |
CN105574109A (zh) | 一种数据库同步方法、同步设备及*** | |
CN112100265A (zh) | 面向大数据架构与区块链的多源数据处理方法及装置 | |
CN105005549A (zh) | 一种自定义链式日志解析装置及方法 | |
CN109818930A (zh) | 一种基于tcp协议的通讯文本数据传输方法 | |
CN105868364B (zh) | 一种基于字节流的结构化数据表示方法 | |
CN107423452A (zh) | 一种电网异构数据库同步复制迁移方法 | |
WO2021036684A1 (zh) | 分布式数据同步方法、装置、设备及可读存储介质 | |
CN106790347A (zh) | 一种基于netty的大规模并发数据转发方法 | |
CN110019495A (zh) | 基于事务日志分析的单导***中mysql数据库同步技术 | |
CN110069566A (zh) | 一种单向导入***中异构数据库同步方法 | |
CN105843663B (zh) | 适用于asn.1递归解析数据结构描述的编解码方法 | |
CN104462996B (zh) | 实现对远程取证目标终端进行协同取证分析的方法及*** | |
Wang et al. | Providing research graph data in JSON-LD using Schema. org | |
MX2020008833A (es) | Metodo de transmision de informacion de control de enlace descendente, dispositivo terminal y dispositivo de red. | |
CN109947841A (zh) | 基于事务日志分析的单导***中oracle数据库同步技术 | |
CN109947726A (zh) | 基于事务日志分析的单导***中db2数据库同步技术 | |
CN110362624A (zh) | 一种基于安全隔离网闸***的异构数据库同步方法 | |
CN105224319B (zh) | 基于dom4j实现XBRL实例文档预览的方法 | |
CN103631983A (zh) | 一种战术数据报文模拟方法及*** | |
CN113342890A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190716 |