CN105589924A - 一种数据库事务粒度同步方法 - Google Patents
一种数据库事务粒度同步方法 Download PDFInfo
- Publication number
- CN105589924A CN105589924A CN201510821052.XA CN201510821052A CN105589924A CN 105589924 A CN105589924 A CN 105589924A CN 201510821052 A CN201510821052 A CN 201510821052A CN 105589924 A CN105589924 A CN 105589924A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- synchronous
- transaction
- instant message
- 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
- 238000000034 method Methods 0.000 title claims abstract description 19
- 230000001360 synchronised effect Effects 0.000 claims abstract description 14
- 238000005096 rolling process Methods 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 abstract description 9
- 230000010076 replication Effects 0.000 abstract description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000010354 integration Effects 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 231100000279 safety data Toxicity 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4247—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
- G06F13/426—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using an embedded synchronisation, e.g. Firewire bus, Fibre Channel bus, SSA bus
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/06—Energy or water supply
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Water Supply & Treatment (AREA)
- Public Health (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库事务粒度同步方法,属于电力***信息化及自动化领域。本发明包含下列内容:对日志的整合和传输以“事务”为单位,无需处理复杂的“回滚”机制,可以在保证一致性和完整性的情况下高效的进行数据库同步;选用了即时消息总线保证了数据安全的同时还有着更高的传输速率,本发明有利于提高数据库同步复制的效率,具有良好的运用前景。
Description
技术领域
本发明属于电力***信息化及自动化领域,主要涉及数据库之间的实时同步进行数据交换的方法。
背景技术
随着国家电网公司SG-ERP工程的建设,国家电网公司在三集五大、两中心、信息平台、综合分析决策等方面都建设了相关的应用***,信息***架构更加复杂。为了保证不同业务***之间的数据一致性,必须解决业务***间的数据交换的问题,而通过业务***数据库之间的实时同步便是解决该问题的可行途径之一。
传统的数据库复制原理是抽取源端数据库的重做日志(redolog)或者归档日志(archivelog),然后通过TCP/IP传输到目标端,最后在目标端对接收到的日志进行解析,并装载到数据库中,从而保证源数据库和目标数据库的数据一致性。如《基于GoldenGate高级复制技术实现数据库同步》(《甘肃科技》2012年第24期,曹建辉)或者《基于OracleDataguard的数据同步机制及其实现》(信息技术与信息化2009,19(3):88-90,吴勇军、孟小锋)中所述的方法。
然而传统的数据库同步复制方法往往以SQL语句作为单位进行日志的处理与传输,因为复杂的“回滚”机制,性能受到很大的限制。同时,TCP/IP的传输速率也制约着数据库的同步效率,如何提高数据传输速率来增加数据库同步复制的效率也成为需要关注的问题。
发明内容
本发明目的是:针对现有技术中的不足,解决国家电网公司网络环境下,如何在保证数据一致性和完整性的情况下高效地进行数据库同步复制以满足业务***复杂的数据交换需求的问题,提供一种数据库事务粒度同步方法。
具体地说,本发明是采用以下技术方案实现的,包括以下步骤:
1)获取源端数据库的重做日志,在线分析获得SQL语句和数据,完成数据库级别、对象集合级别或表级别的数据复制,然后以“事务”为单位进行跟踪,只处理已经提交的交易,对于回滚操作则不做处理;
2)对要同步的数据表进行上锁操作,记录***改变号,然后进行解锁操作并根据***改变号获取表数据;
3)将数据转化为即时消息总线支持的格式,利用即时消息总线传输表数据;
4)目标端接收数据,解析接收到的数据,然后在数据库中装载数据,实现数据库的同步。
上述技术方案的进一步特征在于,源端数据库为Oracle、MYSQL、PostgreSQL数据库。
本发明的有益效果如下:本发明解决了电力***网络环境下位于不同安全区域的不同业务***数据库之间的数据同步、数据交换问题。由于采用了以“事务”为单位的日志解析技术,减少了数据的传输量,在保证一致性和完整性的情况下,提高了数据库同步复制的效率。数据传输时采用了即时消息总线,可以保证数据传输的安全性以及传输的效率。
附图说明
图1是解析重做日志的原理图。
图2是本发明以事务为单位保障数据一致性的原理图。
图3是本发明方法在读写分离场景下运用的实施例图。
图4是本发明方法在容灾场景下运用的实施例图。
具体实施方式
下面结合实施例并参照附图对本发明作进一步详细描述。
本发明的一个实施例,在国家电网公司的网络中使用,通过本实施例完成电力行业各业务***数据库之间的数据同步。本实施例采用的技术方案主要包含两个部分:首先,对日志的整合和传输以“事务”为单位,无需处理复杂的“回滚”机制。使用该技术,在拥有高性能的同时还能够更好的保持数据复制的一致性和完整性。其次,对于数据库日志的传输选用了即时消息总线。因为国家电网公司规划使用即时消息总线子***来进行数据的传输,所以通过即时消息总线子***可以保证数据安全。同时,即时消息总线子***有着更高的传输速率,可以大幅提升数据库同步复制的效率。本实施例支持源端为Oracle、MYSQL、PostgreSQL数据库,目标端支持任意数据库,在进行同步时,原数据库不停止运行,完全实现在线数据同步。
具体而言,本实施例包括如下步骤:
步骤A:获取源端数据库的重做日志,在线分析获得SQL语句和数据,完成数据库级别(DataBase级别)、对象集合级别(schema级别)或表级别(table级别)的数据复制。解析重做日志的原理如图1所示。然后以“事务”为单位进行跟踪,只处理已经提交的交易,对于回滚操作则不做处理,这样可以少抓取大约2/3的日志变化量。图2体现了通过以“事务”为单位能够保障数据一致性的原理。
步骤B:对要同步的数据表进行上锁操作,记录***改变号(如Oracle数据库同步时刻的SCN,Oraclesystemchangenumber),然后进行解锁操作并根据***改变号获取表数据。
步骤C:将数据转化为即时消息总线支持的格式,调用即时消息总线,传输表数据。
步骤D:目标端接收数据,解析接收到的数据,然后在数据库中装载数据,实现数据库的同步。
以下以本实施例在读写分离场景和容灾场景下的具体运用为例进行具体说明。
图3为读写分离场景,在该场景下数据库同步方式为:
步骤1:应用程序A写源数据库,修改数据库表。该源数据库为Oracle数据库。
步骤2:复制节点读取数据库变化,通过即时消息总线发送到目标数据库所在服务器上的复制节点。
步骤3:复制节点收到数据,通过分析,加载数据到本地数据库。
步骤4:应用程序B读取数据库内容。
图4为容灾场景,在该场景下数据库同步方式为:
步骤1:应用程序写业务数据库,修改数据库表。该业务数据库为Oracle数据库。
步骤2:复制节点读取数据库变化,通过即时消息总线发送到灾备数据库所在服务器上的复制节点。
步骤3:复制节点收到数据,通过分析,加载数据到灾备数据库。
虽然本发明已以较佳实施例公开如上,但实施例并不是用来限定本发明的。在不脱离本发明之精神和范围内,所做的任何等效变化或润饰,同样属于本发明之保护范围。因此本发明的保护范围应当以本申请的权利要求所界定的内容为标准。
Claims (2)
1.一种数据库事务粒度同步方法,其特征在于,包括以下步骤:
1)获取源端数据库的重做日志,在线分析获得SQL语句和数据,完成数据库级别对象集合级别或表级别的数据复制,然后以“事务”为单位进行跟踪,只处理已经提交的交易,对于回滚操作则不做处理;
2)对要同步的数据表进行上锁操作,记录***改变号,然后进行解锁操作并根据***改变号获取表数据;
3)将数据转化为即时消息总线支持的格式,利用即时消息总线传输表数据;
4)目标端接收数据,解析接收到的数据,然后在数据库中装载数据,实现数据库的同步。
2.根据权利要求1所述的数据事务粒度同步方法,其特征在于,源端数据库为Oracle、MYSQL、PostgreSQL数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510821052.XA CN105589924A (zh) | 2015-11-23 | 2015-11-23 | 一种数据库事务粒度同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510821052.XA CN105589924A (zh) | 2015-11-23 | 2015-11-23 | 一种数据库事务粒度同步方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105589924A true CN105589924A (zh) | 2016-05-18 |
Family
ID=55929503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510821052.XA Pending CN105589924A (zh) | 2015-11-23 | 2015-11-23 | 一种数据库事务粒度同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105589924A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991606A (zh) * | 2017-03-29 | 2017-07-28 | 恒生电子股份有限公司 | 交易数据处理方法及装置 |
CN109614444A (zh) * | 2018-11-12 | 2019-04-12 | 武汉达梦数据库有限公司 | 一种数据同步时的数据初始化方法 |
CN113039572A (zh) * | 2018-09-14 | 2021-06-25 | 摩根大通国家银行 | 实现交易处理生态***的***和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047549A (zh) * | 2006-04-10 | 2007-10-03 | 华为技术有限公司 | 数据同步***及其方法 |
CN101187888A (zh) * | 2007-12-11 | 2008-05-28 | 浪潮电子信息产业股份有限公司 | 一种异构环境中复制数据库数据的方法 |
CN101807210A (zh) * | 2010-04-26 | 2010-08-18 | 中兴通讯股份有限公司 | 一种数据库间数据同步的方法、***及设备 |
CN103905234A (zh) * | 2012-12-28 | 2014-07-02 | 北京友友天宇***技术有限公司 | 提高分布式***中资源可用性的方法及*** |
US20140279871A1 (en) * | 2013-03-13 | 2014-09-18 | Marcelo Ochoa | System and method for providing near real time data synchronization |
-
2015
- 2015-11-23 CN CN201510821052.XA patent/CN105589924A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047549A (zh) * | 2006-04-10 | 2007-10-03 | 华为技术有限公司 | 数据同步***及其方法 |
CN101187888A (zh) * | 2007-12-11 | 2008-05-28 | 浪潮电子信息产业股份有限公司 | 一种异构环境中复制数据库数据的方法 |
CN101807210A (zh) * | 2010-04-26 | 2010-08-18 | 中兴通讯股份有限公司 | 一种数据库间数据同步的方法、***及设备 |
CN103905234A (zh) * | 2012-12-28 | 2014-07-02 | 北京友友天宇***技术有限公司 | 提高分布式***中资源可用性的方法及*** |
US20140279871A1 (en) * | 2013-03-13 | 2014-09-18 | Marcelo Ochoa | System and method for providing near real time data synchronization |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991606A (zh) * | 2017-03-29 | 2017-07-28 | 恒生电子股份有限公司 | 交易数据处理方法及装置 |
CN113039572A (zh) * | 2018-09-14 | 2021-06-25 | 摩根大通国家银行 | 实现交易处理生态***的***和方法 |
CN109614444A (zh) * | 2018-11-12 | 2019-04-12 | 武汉达梦数据库有限公司 | 一种数据同步时的数据初始化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102855271B (zh) | 一种多版本电网模型的存储与可追溯管理方法 | |
CN104463472A (zh) | 电子政务平台*** | |
CN103593422A (zh) | 一种异构数据库的虚拟访问管理方法 | |
CN112163039A (zh) | 基于企业级数据中台分析域的数据资源标准化管理*** | |
CN105205154B (zh) | 数据迁移方法以及装置 | |
CN104036025A (zh) | 一种基于分布式的海量日志采集*** | |
CN104933173B (zh) | 一种用于异构多数据源的数据处理方法、装置和服务器 | |
CN105589924A (zh) | 一种数据库事务粒度同步方法 | |
CN104462185A (zh) | 一种基于混合结构的数字图书馆云存储*** | |
US10540366B2 (en) | Transforming data structures and data objects for migrating data between databases having different schemas | |
CN103294413A (zh) | 支持海量采集终端的分布式内存实时存储装置及方法 | |
CN104915902A (zh) | 一种基于云平台的外卖在线派送实现方法 | |
CN104167817A (zh) | 一种电力设备实时信息集成的***及方法 | |
CN112148689A (zh) | 一种用于城市级数据中台的数据共享交换*** | |
CN112100227A (zh) | 一种基于多级异构数据存储的大数据处理方法 | |
CN106708972B (zh) | 一种基于hana数据库利用slt组件对abap程序优化的方法 | |
CN104580323A (zh) | 云平台应用于农业信息服务 | |
CN105407044A (zh) | 一种基于nfs的云存储网关***的实现方法 | |
CN106131186A (zh) | 一种基于Redis分布式缓存的用电信息采集接口调试方法 | |
CN105225067A (zh) | 业务信息协同管理分享*** | |
CN106060100A (zh) | 一种分布式云存储服务器 | |
CN104468788A (zh) | 一种多网多终端数据同步方法 | |
CN112328683A (zh) | 一种支持数据库与库直接的数据传输方法、***及存储介质 | |
CN115237426A (zh) | 一种数据库差异的确定方法、装置、设备及存储介质 | |
CN110968907A (zh) | 基于bim的集团房地产建设工程的实施方法 |
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: 20160518 |
|
RJ01 | Rejection of invention patent application after publication |