CN109947726A - 基于事务日志分析的单导***中db2数据库同步技术 - Google Patents
基于事务日志分析的单导***中db2数据库同步技术 Download PDFInfo
- Publication number
- CN109947726A CN109947726A CN201710624683.1A CN201710624683A CN109947726A CN 109947726 A CN109947726 A CN 109947726A CN 201710624683 A CN201710624683 A CN 201710624683A CN 109947726 A CN109947726 A CN 109947726A
- Authority
- CN
- China
- Prior art keywords
- database
- transaction journal
- log
- guiding systems
- analysis
- 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
- 238000005516 engineering process Methods 0.000 title claims abstract description 11
- 238000004458 analytical method Methods 0.000 title claims description 14
- 238000000034 method Methods 0.000 claims abstract description 6
- 230000001360 synchronised effect Effects 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000004519 manufacturing process Methods 0.000 claims description 2
- 238000002955 isolation Methods 0.000 description 3
- 230000007812 deficiency Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了基于事务日志分析的单导***中db2数据库同步技术,该发明使用分析db2数据库事务日志的方法,根据db2提供的db2ReadLog API读取事务日志流,结合db2给出的事务日志格式文档,对事务日志进行解析,实现单导***中内外端db2数据库同步。
Description
技术领域
本发明涉及一种互联网通信技术领域,特别涉及基于事务日志分析的单导***中db2数据库同步技术。
背景技术
单导***是一种数据信息网络安全隔离***,具有数据信息的单向导入功能。单导***由内端和外端组成,外端模块TX只发送数据,内端模块RX只接收数据,数据信息只能从单导外端导入到单导内端。
单导***的db2数据库同步要实现两个安全隔离的网络的跨平台的数据库信息单向同步,实现过程是单导的数据库同步模块从外端db2数据库获取数据生成数据文档,由单导***发送模块将文档传入单导内端,再由单导内端的数据库同步模块把数据同步到目标数据库。
由于单向隔离特性不能使用数据库自带外部连接功能来传递数据库数据,现在常用的技术大多是通过触发器或select查询获取数据,本方案综合考虑各中实现方式优劣,采用解析db2事务日志的方式,分析操作数据,生成的数据写入文档,再由单导***进行同步。
发明内容
为克服上述现有技术的不足,解决现有技术中单导***中db2数据库同步采用触发器或选择数据同步方案会对源数据库造成巨大负担和压力的缺点或不足,本发明采用了分析db2事务日志,解析出操作数据,再组装成sql语句同步到目标数据库的方案,从而实现单导***获取db2数据库数据时不占用源数据库资源和不对源数据库造成压力和负担的目的。根据单导***的特点,该发明分成单导外端和单导内端部分。
单导外端部分包括:
1.db2日志读取模块:通过db2ReadLogAPI对db2数据库事务日志进行读取,并接收读取到的二进制日志流;
2.日志分析模块:把日志读取模块获取的二进制日志流进行解析,并转换成json格式;
3.外端数据发送模块:用于把数据发送到单导内端。
单导内端部分包括:
1.内端数据接收模块:用于接收单导外端发送过来的数据;
2.数据格式转换模块:把从外端接收到的json格式数据转换成sql格式;
3.数据库同步模块:把转换模块得到的sql格式语句同步到目标数据库。
本发明技术方案带来的有益效果:
本发明中使用的事务日志解析法进行单导***的数据库同步,能够避免占用源数据库资源,由于绕过了对源数据库的操作,纯粹对二进制的日志流进行解析,获取数据的速度极快,完全能够满足当前各种db2大型生产环境数据库的同步要求,而且具有时延短、高吞吐量的特点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明提出的实施流程图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
该发明实施流程如下:
1.使用事务日志解析的方式同步db2数据库,首先将日志模式从循环日志记录转换为DB2保留归档日志的日志模式。如果不是归档模式,在db2命令行运行下列三条命令即可:
UPDATE DB CFG FOR数据库名using LOGARCHMETH1LOGRETAIN;
UPDATE DB CFG FOR数据库名using LOG_DDL_STMTS YES;
UPDATE DB CFG FOR数据库名using DFT_SCHEMAS_DCCYES;
2.配置好归档日志,即可通过单导外端日志读取模块,调用db2ReadLogAPI进行db2事务日志读取,并把二进制日志流保存到缓冲区;
3.单导外端日志分析模块从日志缓冲区读取二进制日志流,根据db2提供的日志格式说明,结合db2***表syscat.tables等确定每段事务日志记录对应的表、字段的顺序和大小,确定字段的值,再转换成json格式;
4.把json数据通过单导***外端的发送模块发送到单导内端;
5.单导内端接收从外端发送过来的json格式数据;
6.数据格式转换模块把接收到的json格式数据重组成sql语句;
7.通过数据库同步模块把转换模块得到的sql格式语句同步到目标数据库。
代码举例说明:
1.读取db2事务日志需要调用到db2ReadLogAPI,日志读取模块读取部分的代码如下:
db2LRI startLRI;
db2LRI endLRI;
char*logBuffer=NULL;
sqluint32logBufferSize=0;
db2ReadLogInfoStruct readLogInfo={0};
db2ReadLogStruct readLogInput={0};
readLogInput.iCallerAction=DB2READLOG_READ;
readLogInput.piStartLRI=&startLRI;
readLogInput.piEndLRI=&endLRI;
readLogInput.poLogBuffer=logBuffer;
readLogInput.iLogBufferSize=logBufferSize;
readLogInput.iFilterOption=DB2READLOG_FILTER_ON;
readLogInput.poReadLogInfo=&readLogInfo;
db2ReadLog(db2Version1010,&readLogInput,&sqlca);
2.经过运行上面的代码,即可读取db2的日志,并把二进制日志流保存在缓冲区logBuffer中。然后日志解析模块再通过db2提供的日志格式说明,解析二进制流,部分代码如下:
3.根据上面代码,二进制日志流解析出来的字段-值的键值对信息,就存放在jsonColValItem这个json变量中了。其中m_tbinfo变量存放的是从***表syscat.tables等读取的表结构信息。可见以二进制日志流解析数据的方式进行同步是完全可行和高效的。
以上对本发明实施例所提供的基于事务日志分析的单导***中db2数据库同步技术进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (4)
1.基于事务日志分析的单导***中db2数据库同步技术,能够避免占用源数据库资源,该发明绕过了对源数据库的操作,纯粹对二进制的日志流进行解析,获取数据的速度提高,能够满足当前各种db2大型生产环境数据库的同步要求。
2.根据权利要求1所述的基于事务日志分析的单导***中db2数据库同步技术,其特征在于:由单导外端和单导内端组成,使用分析db2数据库事务日志的方法,根据db2提供的db2ReadLog API读取事务日志流,结合db2给出的事务日志格式文档,对事务日志进行解析,实现单导***中内外端db2数据库同步。
3.根据权利要求1所述的基于事务日志分析的单导***中db2数据库同步技术,其特征在于:单导外端部分由以下模块组成,
s1.db2日志读取模块:通过db2ReadLog API对db2数据库事务日志进行读取,并接收读取到的二进制日志流;
s2.日志分析模块:把日志读取模块获取的二进制日志流进行解析,并转换成json格式;
s3.外端数据发送模块:用于把数据发送到单导内端。
4.根据权利要求1所述的基于事务日志分析的单导***中db2数据库同步技术,其特征在于:单导内端部分由以下模块组成,
f1.内端数据接收模块:用于接收单导外端发送过来的数据;
f2.数据格式转换模块:把从外端接收到的json格式数据转换成sql格式;
f3.数据库同步模块:把转换模块得到的sql格式语句同步到目标数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710624683.1A CN109947726A (zh) | 2017-07-27 | 2017-07-27 | 基于事务日志分析的单导***中db2数据库同步技术 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710624683.1A CN109947726A (zh) | 2017-07-27 | 2017-07-27 | 基于事务日志分析的单导***中db2数据库同步技术 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109947726A true CN109947726A (zh) | 2019-06-28 |
Family
ID=67003932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710624683.1A Pending CN109947726A (zh) | 2017-07-27 | 2017-07-27 | 基于事务日志分析的单导***中db2数据库同步技术 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109947726A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111209251A (zh) * | 2019-12-27 | 2020-05-29 | 山大地纬软件股份有限公司 | 一种用于数据归档***的数据增量同步***及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060047684A1 (en) * | 2004-08-31 | 2006-03-02 | Cherkauer Kevin J | Sending log records directly from log buffer |
CN102289469A (zh) * | 2011-07-26 | 2011-12-21 | 国电南瑞科技股份有限公司 | 一种支持通用数据库基于物理隔离设备同步数据的方法 |
CN103617176A (zh) * | 2013-11-04 | 2014-03-05 | 广东电子工业研究院有限公司 | 一种实现多源异构数据资源自动同步的方法 |
-
2017
- 2017-07-27 CN CN201710624683.1A patent/CN109947726A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060047684A1 (en) * | 2004-08-31 | 2006-03-02 | Cherkauer Kevin J | Sending log records directly from log buffer |
CN102289469A (zh) * | 2011-07-26 | 2011-12-21 | 国电南瑞科技股份有限公司 | 一种支持通用数据库基于物理隔离设备同步数据的方法 |
CN103617176A (zh) * | 2013-11-04 | 2014-03-05 | 广东电子工业研究院有限公司 | 一种实现多源异构数据资源自动同步的方法 |
Non-Patent Citations (2)
Title |
---|
何伟 等: ""基于网络隔离的数据库同步方法"", 《信息安全与通信保密》, no. 01, 10 January 2010 (2010-01-10), pages 82 - 84 * |
蒋敏 等: ""一种基于Agent的数据同步方法"", 《江南大学学报》, no. 06, 30 December 2005 (2005-12-30), pages 598 - 601 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111209251A (zh) * | 2019-12-27 | 2020-05-29 | 山大地纬软件股份有限公司 | 一种用于数据归档***的数据增量同步***及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150163301A1 (en) | System for and method for media upload multithreading for large file uploads | |
CN110445860B (zh) | 一种报文发送方法、装置、终端设备及存储介质 | |
CN105005549A (zh) | 一种自定义链式日志解析装置及方法 | |
CN103067483A (zh) | 基于数据包的远程数据增量同步方法和装置 | |
CN105868364B (zh) | 一种基于字节流的结构化数据表示方法 | |
CN105518673B (zh) | 管理数据摄取 | |
CN106648817B (zh) | 一种跨平台的数据对象传输方法 | |
CN102571939A (zh) | 一种跨平台通信方法及*** | |
CN112100265A (zh) | 面向大数据架构与区块链的多源数据处理方法及装置 | |
CN109947726A (zh) | 基于事务日志分析的单导***中db2数据库同步技术 | |
CN102724143A (zh) | 发送物联网数据的方法和物联网网关 | |
CN208940010U (zh) | 一种内外网同步*** | |
US20150229543A1 (en) | System and method for the passive monitoring and reporting of network content on usb cables | |
CN110069566A (zh) | 一种单向导入***中异构数据库同步方法 | |
CN103793500A (zh) | 基于增量的主数据同步方法 | |
CN110019495A (zh) | 基于事务日志分析的单导***中mysql数据库同步技术 | |
CN109947841A (zh) | 基于事务日志分析的单导***中oracle数据库同步技术 | |
CN103595503B (zh) | 一种基于串口装置的频率编解码通讯*** | |
US20150270903A1 (en) | High speed information transfer method and system | |
CN106161604A (zh) | 一种不同税务网络之间的联合办税***及方法 | |
JP6325063B2 (ja) | プロセス間通信を改善する方法及び装置 | |
CN110362624A (zh) | 一种基于安全隔离网闸***的异构数据库同步方法 | |
CN202385300U (zh) | 物联网数据的传输*** | |
CN107220327A (zh) | 基于MongoDB的数据查询方法及***、服务终端、存储器 | |
CN110569456B (zh) | Web端数据离线缓存方法及装置、电子设备 |
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 |