CN103970834A - 一种异构数据库同步系统中增量数据同步故障的恢复方法 - Google Patents

一种异构数据库同步系统中增量数据同步故障的恢复方法 Download PDF

Info

Publication number
CN103970834A
CN103970834A CN201410132489.8A CN201410132489A CN103970834A CN 103970834 A CN103970834 A CN 103970834A CN 201410132489 A CN201410132489 A CN 201410132489A CN 103970834 A CN103970834 A CN 103970834A
Authority
CN
China
Prior art keywords
database
incremental data
data
synchronous
sync bit
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
Application number
CN201410132489.8A
Other languages
English (en)
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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201410132489.8A priority Critical patent/CN103970834A/zh
Publication of CN103970834A publication Critical patent/CN103970834A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/1448Management of the data involved in backup or backup restore
    • 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
    • G06F16/273Asynchronous replication or reconciliation

Landscapes

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

Abstract

本发明公开了一种异构数据库同步系统中增量数据同步故障的恢复方法,所述异构数据库同步系统包括至少两个数据库,包括以下步骤:(1)在目的数据库中建立对应的特殊表,每个目的数据库的特殊表用于记录能够与该目的数据库同步的源数据库的同步位置;(2)将目的数据库的事务执行模式设为手动提交模式,同步完毕增量数据后,更新特殊表中的同步位置,然后手动提交增量数据事务;(3)若从源数据库到目的数据库进行增量数据同步时发生故障,则从目的数据库的特殊表中读取源数据库的同步位置,由同步位置开始继续进行从源数据库到目的数据库的增量数据同步。本发明在基本不影响数据库性能的同时,利用数据库事务的原子性进行同步故障的快速恢复。

Description

一种异构数据库同步系统中增量数据同步故障的恢复方法
技术领域
本发明涉及数据库同步技术领域,具体涉及一种异构数据库同步系统中增量数据同步故障的恢复方法。
背景技术
数据库是IT架构中的一种基础构件,是对数据进行存储、管理的一种有效设施,现在几乎所有的应用都离不开数据库的支持。由于现在海量数据和数据访问地区分布不均衡,单个数据库已经不能承载所有的访问,一般需要在多个不同的地方分别部署一个数据库来提供服务,其中每一个数据库对外界来说都是数据完整和服务完整的,但是事实上每两个数据库之间的数据都是不一致的,所以这些不同地方的数据库之间就需要进行增量数据的同步来保证所有数据库的数据一致性和服务完整性。
增量数据是指一个数据库在某一段时间之内产生的数据,按照操作类型区分又分为插入数据、删除数据、修改数据,分别对应SQL中insert、delete、update操作,数据库增量同步就是把增量数据从源数据库传输到目的数据库中,以达到源数据库和目的数据库的数据一致性,过程依次如下:获取源数据库的增量数据、传输到目的数据库、在目的数据库中执行SQL语句进行数据载入。
由于IT设施所处的环境是不可靠的,且硬件、软件、外界不可抗力等各种原因会造成数据库系统处在一个错误的状态而无法运行或者宕机,因此,在增量数据同步过程中会出现故障,当增量数据同步过程重启之后,如何恢复运行中断的增量数据同步是一个问题。
授权公告号为CN101038591B的专利文献公开了一种数据库同步方法,用于主用服务器数据库和备用服务器数据库的初始同步,所述主用服务器数据库中设置有包括同步标识号的同步表,该方法包括以下步骤:备用服务器向主用服务器发送初始同步请求;主用服务器根据接收到的所述初始同步请求,在所述同步表中更新同步标识号,并备份所述主用服务器数据库,生成备份文件;备用服务器获取所述更新后的同步标识号和所述备份文件,用所述备份文件恢复备用服务器数据库。
恢复运行中断的增量数据同步的关键在于记录同步位置信息,采用文件记录同步位置信息是一种通常采用的方法,但是由于文件操作与数据库操作不是同一个原子操作,写文件操作与写数据库操作之间存在很小的时间间隔,在某些极端情况下(比如刚刚写完文件操作还未进行数据库操作时掉电,仍会对数据库的一致性造成破坏,所以如果使用文件记录同步位置,必须设计更加复杂的方法来保证增量数据与同步位置的一致性。
发明内容
本发明提供了一种异构数据库同步系统中增量数据同步故障的恢复方法,在基本不影响数据库性能的同时,利用数据库事务的原子性进行同步故障的快速恢复。
一种异构数据库同步系统中增量数据同步故障的恢复方法,所述异构数据库同步系统包括至少两个数据库,两个数据库进行增量数据同步时,其中一个为提供增量数据的源数据库,另一个为接收增量数据的目的数据库,包括以下步骤:
(1)在目的数据库中建立对应的特殊表,每个目的数据库的特殊表用于记录能够与该目的数据库同步的源数据库的同步位置;
(2)将目的数据库的事务执行模式设为手动提交模式,同步完毕增量数据后,更新特殊表中的同步位置,然后手动提交增量数据事务;
(3)若从源数据库到目的数据库进行增量数据同步时发生故障,则从目的数据库的特殊表中读取源数据库的同步位置,由同步位置开始继续进行从源数据库到目的数据库的增量数据同步。
由于数据库事务操作的原子性,可以保证增量数据与同步位置的写入及修改是同一个原子操作,即增量数据与同步位置要么写入都成功、要么写入都不成功。
所述特殊表采用标准SQL建立。特殊表的名称固定(如datasync),所述特殊表中至少包含一个同步位置字段。特殊表中也可以包含其他字段,用于记录定位源数据库的其他信息,例如源数据库所在主机IP、源数据库端口以及源数据库名称,即特殊表中包含同步位置字段、源数据库所在主机IP、源数据库端口以及源数据库名称字段。
由于异构数据库同步系统中的各个数据库可能采用不同的标准建立,为了各数据库之间的兼容性,所述特殊表的同步位置字段以及其他所有字段的数据类型为varchar。varchar便于特殊表在所有数据库之间通用。
建立特殊表时,首先写入一条源数据库的初始数据,初始数据可以为一条数据为“host,port,databasename,-1”的行数据(host为源数据库的主机IP,port为源数据库端口,databasename为源数据库名称)。
事务执行模式设为手动提交模式,即需要用户手动提交,当增量数据事务执行完毕之后,更新目的数据库对应的特殊表中的记录(按照host、port、databasename定位此条记录),最后手动提交事务,此时整个增量数据事务的数据和更新的同步位置才能够提交到数据库中,使数据库发生变化。
作为优选,由同步位置开始继续进行从源数据库到目的数据库的增量数据同步,具体操作为:获取特殊表中记录的源数据库的同步位置,解析该同步位置对应的数据位置,然后从该数据位置开始继续进行从源数据库到目的数据库的增量数据同步。
本发明异构数据库同步系统中增量数据同步故障的恢复方法,在基本不影响数据库性能的同时,利用数据库事务的原子性进行同步故障的快速恢复。
附图说明
图1为本发明异构数据库同步系统中增量数据同步故障的恢复方法的流程图。
具体实施方式
下面结合附图,对本发明异构数据库同步系统中增量数据同步故障的恢复方法做详细描述。
本发明适用的异构数据库同步系统包括至少两个数据库,两个数据库进行增量数据同步时,其中一个为提供增量数据的源数据库,另一个为接收增量数据的目的数据库,采用本发明的方法能够在数据库同步发生故障时,对同步过程进行方便快捷地恢复。
为便于叙述,以下以数据库A和数据库B之间的同步过程为例,详述故障恢复方法,其中数据库A为源数据库,数据库B为目的数据库,将数据库A中的增量数据同步至数据库B,如图1所示,具体包括以下步骤:
(1)在数据库B中建立一个特殊表B,特殊表B为标准SQL建立的一个名称固定的表,包含同步位置一个字段,并且写入一条初始记录,初始记录为一条数据为“host,port,databasename,-1”的行数据。
为了异构数据库之间的兼容性,使用varchar作为同步位置字段的数据类型。
建表SQL语句为:create table sync_position(host varchar(50),portvarchar(50),databasename varchar(50),position_str varchar(50)),写入源数据库的初始记录SQL语句为insert into sync_positionvalues(‘192.168.2.21’,’3306’,’users’,’-1’)。
(2)数据库B的事务提交模式设为手动提交模式,将数据库A中的增量数据传输至数据库B并执行其中的所有数据,然后更新特殊表B中的同步位置信息(如update sync_position set position_str=’1106’wherehost=’192.168.2.21’AND port=’3306’ANDdatabasename=’users’),该同步位置记录数据库A中同步到数据库B中的数据位置信息,最后提交增量数据事务。
数据库B除了能与数据库A同步之外,数据库B还可能与其他数据库之间存在同步关系,例如,数据库B还可以与数据库C和数据库D同步,那么数据库B的特殊表中将依据数据库的不同而做不同的同步位置记录,所以特殊表中除了同步位置字段,还包括主机IP、端口以及数据库名称字段等定位源数据库字段,所有字段的数据类型均采用varchar。
(3)若数据库A与数据库B同步的过程中出现故障导致中断,重启数据库同步时,读取数据库B中特殊表B记录的同步位置信息,解析该同步位置信息对应的数据库A中的数据位置,然后从该数据位置开始继续进行从数据库A到数据库B的增量数据同步。
以上公开的仅为本发明的具体实施例,但是本发明并非局限于此,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围,这些改动和变型均应属于本发明要求的保护范围保护内。

Claims (5)

1.一种异构数据库同步系统中增量数据同步故障的恢复方法,所述异构数据库同步系统包括至少两个数据库,两个数据库进行增量数据同步时,其中一个为提供增量数据的源数据库,另一个为接收增量数据的目的数据库,其特征在于,包括以下步骤:
(1)在目的数据库中建立对应的特殊表,每个目的数据库的特殊表用于记录能够与该目的数据库同步的源数据库的同步位置;
(2)将目的数据库的事务执行模式设为手动提交模式,同步完毕增量数据后,更新特殊表中的同步位置,然后手动提交增量数据事务;
(3)若从源数据库到目的数据库进行增量数据同步时发生故障,则从目的数据库的特殊表中读取源数据库的同步位置,由同步位置开始继续进行从源数据库到目的数据库的增量数据同步。
2.如权利要求1所述的异构数据库同步系统中增量数据同步故障的恢复方法,其特征在于,所述特殊表中至少包含一个同步位置字段。
3.如权利要求2所述的异构数据库同步系统中增量数据同步故障的恢复方法,其特征在于,所述同步位置字段的数据类型为varchar。
4.如权利要求3所述的异构数据库同步系统中增量数据同步故障的恢复方法,其特征在于,所述特殊表采用标准SQL建立。
5.如权利要求4所述的异构数据库同步系统中增量数据同步故障的恢复方法,其特征在于,由同步位置开始继续进行从源数据库到目的数据库的增量数据同步,具体操作为:获取特殊表中记录的源数据库的同步位置,解析该同步位置对应的数据位置,然后从该数据位置开始继续进行从源数据库到目的数据库的增量数据同步。
CN201410132489.8A 2014-04-02 2014-04-02 一种异构数据库同步系统中增量数据同步故障的恢复方法 Pending CN103970834A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410132489.8A CN103970834A (zh) 2014-04-02 2014-04-02 一种异构数据库同步系统中增量数据同步故障的恢复方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410132489.8A CN103970834A (zh) 2014-04-02 2014-04-02 一种异构数据库同步系统中增量数据同步故障的恢复方法

Publications (1)

Publication Number Publication Date
CN103970834A true CN103970834A (zh) 2014-08-06

Family

ID=51240331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410132489.8A Pending CN103970834A (zh) 2014-04-02 2014-04-02 一种异构数据库同步系统中增量数据同步故障的恢复方法

Country Status (1)

Country Link
CN (1) CN103970834A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105786806A (zh) * 2014-12-15 2016-07-20 钟叶青 数据库转换的同步系统及其方法
CN105893447A (zh) * 2015-12-28 2016-08-24 乐视网信息技术(北京)股份有限公司 文件同步方法、装置及系统
CN107302469A (zh) * 2016-04-14 2017-10-27 北京京东尚科信息技术有限公司 针对分布式服务集群系统数据更新的实时监控装置及方法
CN107506263A (zh) * 2017-08-24 2017-12-22 深圳互联先锋科技有限公司 一种故障测试方法和装置
CN108205560A (zh) * 2016-12-19 2018-06-26 腾讯科技(深圳)有限公司 一种数据同步方法以及装置
CN109408588A (zh) * 2018-09-07 2019-03-01 武汉达梦数据库有限公司 一种数据库同步初始化装载时断点续传的方法
CN110765204A (zh) * 2019-09-30 2020-02-07 武汉达梦数据库有限公司 一种对增量同步异常中断情况的处理方法和装置
CN110908838A (zh) * 2019-11-19 2020-03-24 杭州安恒信息技术股份有限公司 一种数据处理方法、装置及电子设备和存储介质
CN113360495A (zh) * 2021-04-20 2021-09-07 山东英信计算机技术有限公司 一种数据库查询中断的恢复方法、装置、设备及可读介质
CN114553508A (zh) * 2022-02-12 2022-05-27 中国银联股份有限公司 一种数据访问方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040122870A1 (en) * 2002-12-24 2004-06-24 Joong-Ki Park Method for data synchronization and update conflict resolution between mobile clients and server in mobile system
CN101102577A (zh) * 2006-07-07 2008-01-09 中兴通讯股份有限公司 无线通信基站系统前后台数据库表数据增量同步方法
CN103064976A (zh) * 2013-01-14 2013-04-24 浙江水利水电专科学校 基于主动数据库技术的同异构dbms间数据交换方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040122870A1 (en) * 2002-12-24 2004-06-24 Joong-Ki Park Method for data synchronization and update conflict resolution between mobile clients and server in mobile system
CN101102577A (zh) * 2006-07-07 2008-01-09 中兴通讯股份有限公司 无线通信基站系统前后台数据库表数据增量同步方法
CN103064976A (zh) * 2013-01-14 2013-04-24 浙江水利水电专科学校 基于主动数据库技术的同异构dbms间数据交换方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CZMMIAO: ""Oracle Golden Gate体系架构详解(原创)"", 《HTTP://CZMMIAO.ITEYE.COM/BLOG/1550877》 *
DAVID DAI: ""Oracle Golden Gate系列十三——配置GG进程检查点(checkpoint)说明"", 《HTTP://BLOG.CSDN.NET/TIANLESOFTWARE/ARTICLE/DETAILS/6983928》 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105786806A (zh) * 2014-12-15 2016-07-20 钟叶青 数据库转换的同步系统及其方法
CN105786806B (zh) * 2014-12-15 2018-12-04 钟叶青 数据库转换的同步系统及其方法
CN105893447A (zh) * 2015-12-28 2016-08-24 乐视网信息技术(北京)股份有限公司 文件同步方法、装置及系统
WO2017113694A1 (zh) * 2015-12-28 2017-07-06 乐视控股(北京)有限公司 文件同步方法、装置及系统
CN107302469B (zh) * 2016-04-14 2020-03-31 北京京东尚科信息技术有限公司 分布式服务集群系统数据更新的监控装置及方法
CN107302469A (zh) * 2016-04-14 2017-10-27 北京京东尚科信息技术有限公司 针对分布式服务集群系统数据更新的实时监控装置及方法
CN108205560A (zh) * 2016-12-19 2018-06-26 腾讯科技(深圳)有限公司 一种数据同步方法以及装置
CN108205560B (zh) * 2016-12-19 2021-12-14 腾讯科技(深圳)有限公司 一种数据同步方法以及装置
CN107506263A (zh) * 2017-08-24 2017-12-22 深圳互联先锋科技有限公司 一种故障测试方法和装置
CN109408588A (zh) * 2018-09-07 2019-03-01 武汉达梦数据库有限公司 一种数据库同步初始化装载时断点续传的方法
CN110765204A (zh) * 2019-09-30 2020-02-07 武汉达梦数据库有限公司 一种对增量同步异常中断情况的处理方法和装置
CN110765204B (zh) * 2019-09-30 2022-02-01 武汉达梦数据库股份有限公司 一种对增量同步异常中断情况的处理方法和装置
CN110908838A (zh) * 2019-11-19 2020-03-24 杭州安恒信息技术股份有限公司 一种数据处理方法、装置及电子设备和存储介质
CN110908838B (zh) * 2019-11-19 2022-09-02 杭州安恒信息技术股份有限公司 一种数据处理方法、装置及电子设备和存储介质
CN113360495A (zh) * 2021-04-20 2021-09-07 山东英信计算机技术有限公司 一种数据库查询中断的恢复方法、装置、设备及可读介质
CN113360495B (zh) * 2021-04-20 2023-02-24 山东英信计算机技术有限公司 一种数据库查询中断的恢复方法、装置、设备及可读介质
CN114553508A (zh) * 2022-02-12 2022-05-27 中国银联股份有限公司 一种数据访问方法及装置
CN114553508B (zh) * 2022-02-12 2023-06-30 中国银联股份有限公司 一种数据访问方法及装置

Similar Documents

Publication Publication Date Title
CN103970834A (zh) 一种异构数据库同步系统中增量数据同步故障的恢复方法
US9575849B2 (en) Synchronized backup and recovery of database systems
CN106407356B (zh) 一种数据备份方法及装置
DK3179359T3 (en) PROCEDURE FOR SENDING DATA, PROCEDURE FOR RECEIVING DATA AND STORAGE UNIT
JP4668763B2 (ja) ストレージ装置のリストア方法及びストレージ装置
EP2790112B1 (en) Method and system for data synchronization and data access apparatus
CN113396407A (zh) 用于利用区块链技术扩充数据库应用的系统和方法
US20150213100A1 (en) Data synchronization method and system
KR100961739B1 (ko) 가상화를 이용한 원격 복제의 일관성 유지방법
CN103842969A (zh) 信息处理系统
WO2020207010A1 (zh) 数据备份方法、装置及计算机可读存储介质
CN105574187B (zh) 一种异构数据库复制事务一致性保障方法及系统
CN104965879A (zh) 修改数据表的表结构的方法及装置
CN109918229B (zh) 非日志模式的数据库集群副本构建方法及装置
US20170255528A1 (en) Smart data replication recoverer
CN103970833A (zh) 一种基于日志的异构数据库同步系统中双向同步数据循环的解决方法
EP2380090B1 (en) Data integrity in a database environment through background synchronization
CN103562878A (zh) 在镜像虚拟机系统中的存储器检查点设置
US20110137874A1 (en) Methods to Minimize Communication in a Cluster Database System
CN102306115A (zh) 异步远程复制方法、系统及设备
US10048978B2 (en) Apparatus and method for identifying a virtual machine having changeable settings
CN102193841B (zh) 一种Subversion配置库的备份方法及装置
US20170083419A1 (en) Data management method, node, and system for database cluster
CN104166605A (zh) 基于增量数据文件的数据备份方法及系统
JP2020530155A (ja) 冗長アレイデータ整列のためのシステムおよび方法

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20140806