CN109408588A - 一种数据库同步初始化装载时断点续传的方法 - Google Patents

一种数据库同步初始化装载时断点续传的方法 Download PDF

Info

Publication number
CN109408588A
CN109408588A CN201811045313.3A CN201811045313A CN109408588A CN 109408588 A CN109408588 A CN 109408588A CN 201811045313 A CN201811045313 A CN 201811045313A CN 109408588 A CN109408588 A CN 109408588A
Authority
CN
China
Prior art keywords
database
initialization
loads
current data
synchronous recording
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
CN201811045313.3A
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.)
Wuhan Dameng Database Co Ltd
Original Assignee
Wuhan Dameng Database Co Ltd
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 Wuhan Dameng Database Co Ltd filed Critical Wuhan Dameng Database Co Ltd
Priority to CN201811045313.3A priority Critical patent/CN109408588A/zh
Publication of CN109408588A publication Critical patent/CN109408588A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种数据库同步初始化装载时断点续传的方法,包括以下步骤:步骤S1、在目标数据库中建立同步记录表,在所述同步记录表中对已经完成初始化装载的数据表进行登记;步骤S2、如果初始化装载中断,则从所述目标数据库中获取所述同步记录表,并发送至源端数据库;步骤S3、所述源端数据库查询所述同步记录表,判断正在初始化装载的当前数据表是否已经装载完成,如果是则跳过所述当前数据表的初始化装载,否则继续执行所述当前数据表的初始化装载。本发明可以避免数据库同步时,重复的数据表初始化装载,同步效率高。

Description

一种数据库同步初始化装载时断点续传的方法
技术领域
本发明涉及数据库同步初始化装载技术领域,具体涉及一种数据库同步初始化装载时断点续传的方法。
背景技术
在利用数据同步工具进行数据库数据实时同步时,首先需要对目标数据库进行数据初始化操作,来获得数据同步的基础点。在完成数据初始化操作之后,即可在此基础数据之上进行实时增量数据同步。在现实数据库应用中,源端数据库中可能存在成千上万张数据表,并且表数据量大,导致整个初始化装载数据的过程耗时较长,在初始化装载这个过程中,可能由于网络不稳定、数据库异常、操作***异常以及同步工具异常等原因,造成数据初始化装载过程中断。当排除影响数据初始化的因素后,需要重新进行数据初始化装载,这将会导致已完成数据装载的部分数据表需要重新装载,重复耗时,并且重新装载后依然会面临装载中断的风险。
发明内容
本发明的目的在于克服上述技术不足,提供一种数据库同步初始化装载时断点续传的方法,解决现有技术中数据库同步初始化装载中断需要重新进行所有数据表的重新装载的技术问题。
为达到上述技术目的,本发明的技术方案提供一种数据库同步初始化装载时断点续传的方法,包括以下步骤:
步骤S1、在目标数据库中建立同步记录表,在所述同步记录表中对已经完成初始化装载的数据表进行登记;
步骤S2、如果初始化装载中断,则从所述目标数据库中获取所述同步记录表,并发送至源端数据库;
步骤S3、所述源端数据库查询所述同步记录表,判断正在初始化装载的当前数据表是否已经装载完成,如果是则跳过所述当前数据表的初始化装载,否则继续执行所述当前数据表的初始化装载。
与现有技术相比,本发明的有益效果包括:本发明首先在同步的目标数据库中创建一张同步记录表,在进行初始化装载时,当需要装载的数据表完成数据初始化后,在同步记录表中进行登记,表明该表已完成初始化装载。当初始化装载中断后,初始化重新开始执行之前,源端数据库的同步工具要先从目标数据库中获取上次成功初始化的同步记录表信息,然后根据这些信息过滤已经完成初始化的表,只初始化那些没有被登记的表,实现以数据表为单位的断点续传,避免重复初始化。
附图说明
图1是本发明提供的数据库同步初始化装载时断点续传的方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例1:
如图1所示,本发明的实施例1提供了一种数据库同步初始化装载时断点续传的方法,包括以下步骤:
步骤S1、在目标数据库中建立同步记录表,在所述同步记录表中对已经完成初始化装载的数据表进行登记;
步骤S2、如果初始化装载中断,则从所述目标数据库中获取所述同步记录表,并发送至源端数据库;
步骤S3、所述源端数据库查询所述同步记录表,判断正在初始化装载的当前数据表是否已经装载完成,如果是则跳过所述当前数据表的初始化装载,否则继续执行所述当前数据表的初始化装载。
本发明提供的数据库中初始化装载时断点续传的方法,首先在同步的目标数据库中创建一张同步记录表,在进行初始化装载时,当需要装载的数据表完成数据初始化后,在同步记录表中进行登记,表明该表已完成初始化装载。当初始化装载中断后,初始化重新开始执行之前,源端数据库的同步工具要先从目标数据库中获取上次成功初始化的同步记录表信息,然后根据这些信息过滤已经完成初始化的表,只初始化那些没有被登记的表,实现以数据表为单位的断点续传,避免重复初始化。
优选的,所述同步记录表包括已经完成初始化装载的数据表的模式名、表名以及LSN提交值。
具体的,所述同步记录表的字段定义如下表:
字段 含义
SCH_NAME 表所属的模式名
TAB_NAME 表名
COMMIT_LSN 提交LSN值
在同步记录表中记录表名以及模式名,是为了对已完成初始化装载的数据表进行记录标识;在同步记录表中记录已完成初始化装载的数据表的LSN提交值,是为了在进行实时增量同步时,对每个数据表能够从一个正确的LSN起始点开始进行增量同步。
优选的,所述步骤S2具体为:
步骤S21、如果初始化装载中断,所述源端数据库重新执行初始化装载命令,从所述初始化装载命令中解析出断点续传的功能掩码,并向所述目标数据库发送获取命令;
步骤S22、所述目标数据库接收到所述获取命令后,查询所述同步记录表中的记录信息,并将所述记录信息发送至所述源端数据库。
通过在初始化装载命令中设置断点续传的功能掩码来控制初始化装载执行的操作,当解析出所述功能掩码时,则向目标数据库获取同步记录表,进行数据表的筛选,筛选出未完成初始化装载的数据表继续进行装载,筛除已经完成初始化装载的数据表,避免重复装载。所述功能掩码可以使用特定的关键字进行标识,以便识别。
具体的,在目标数据库同步进程使用如下SQL语句查询已初始化装载完成的数据表:se l ect SCH_NAME,TAB_NAME,COMM I T_LSN from"初始化装载***表"。
优选的,所述步骤S2具体为:将所述同步记录表组织成哈希表结构存储于所述源端数据库中,并以表名为查找键进行哈希查找。
以哈希表结构存储同步记录表,并以表名为查找键进行哈希查找,有利于提高同步记录表的查询效率。
优选的,所述步骤S3中继续执行当前数据表的初始化装载具体为:抽取所述当前数据表中的数据信息,将所述当前数据表中的数据信息发送至目标数据库;所述目标数据库根据所述当前数据表中的数据信息进行同步复制。
继续完成因中断未完成的数据表初始化装载工作。
优选的,所述步骤S3还包括:查询所述源端数据库的当前LSN值,然后将所述当前LSN值发送至目标数据库;所述目标数据库将所述当前LSN值写入装载同步***表中,作为当前数据表的LSN提交值。
在进行当前数据表的同步初始化装载的同时,将当前数据表的当前LSN值记录下来,并随同当前数据表的数据信息一同发送至目标数据库,便于当前数据表后续的增量数据的同步。
具体的,查询当前LSN值采用现有技术即可实现,不同数据库查询当前LSN值的方式不同,下表列出几种不同数据库的查询语句:
上表中,DM6和DM7分别表示达梦数据库6和达梦数据库7。
优选的,还包括步骤S4,根据所述当前数据表的LSN提交值对所述当前数据表进行增量同步。
将LSN提交值作为增量数据同步的起始分析值,避免不必要的增量同步分析,提高增量同步效率。
优选的,所述步骤S4具体为:
步骤S41、所述源端数据库的同步进程实时捕获所述源端数据库的事务日志,提取并转换所述事务日志的事务操作,并发送至目标数据库;
步骤S42、所述目标数据库接收所述事物操作后,分析提取所述事物操作的LSN值,如果所述事物操作的LSN值大于所述当前数据表的LSN提交值,则对所述事物操作进行增量同步,否则忽略所述事物操作。
将事务操作的LSN值与当前数据表的LSN提交值比较,如果事物操作的LSN值大于当前数据表的LSN提交值,说明该事物操作还未进行同步,则进行该事务操作的增量同步,如果事物操作的LSN值小于当前数据表的LSN提交值,则说明该事物操作已经同步,则不需要进行重复的同步操作,直接忽略该事物操作即可。避免不必要的增量数据同步,提高增量数据同步的效率。
优选的,所述步骤S3中继续执行当前数据表的初始化装载之前,还包括:对所述当前数据表执行TRUNCATE操作,然后再执行I NSERT操作。
对所述当前数据表执行TRUNCATE操作,然后再执行I NSERT操作,目的是防止当前数据表中已装载有部分数据,影响初始化装载的正常进行。
以上所述本发明的具体实施方式,并不构成对本发明保护范围的限定。任何根据本发明的技术构思所做出的各种其他相应的改变与变形,均应包含在本发明权利要求的保护范围内。

Claims (9)

1.一种数据库同步初始化装载时断点续传的方法,其特征在于,包括以下步骤:
步骤S1、在目标数据库中建立同步记录表,在所述同步记录表中对已经完成初始化装载的数据表进行登记;
步骤S2、如果初始化装载中断,则从所述目标数据库中获取所述同步记录表,并发送至源端数据库;
步骤S3、所述源端数据库查询所述同步记录表,判断正在初始化装载的当前数据表是否已经装载完成,如果是则跳过所述当前数据表的初始化装载,否则继续执行所述当前数据表的初始化装载。
2.根据权利要求1所述的数据库同步初始化装载时断点续传的方法,其特征在于,所述同步记录表包括已经完成初始化装载的数据表的模式名、表名以及LSN提交值。
3.根据权利要求1所述的数据库同步初始化装载时断点续传的方法,其特征在于,所述步骤S2具体为:
步骤S21、如果初始化装载中断,所述源端数据库重新执行初始化装载命令,从所述初始化装载命令中解析出断点续传的功能掩码,并向所述目标数据库发送获取命令;
步骤S22、所述目标数据库接收到所述获取命令后,查询所述同步记录表中的记录信息,并将所述记录信息发送至所述源端数据库。
4.根据权利要求1所述的数据库同步初始化装载时断点续传的方法,其特征在于,所述步骤S3中查询所述同步记录表具体为:将所述同步记录表组织成哈希表结构存储于所述源端数据库中,并以表名为查找键进行哈希查找。
5.根据权利要求1所述的数据库同步初始化装载时断点续传的方法,其特征在于,所述步骤S3中继续执行当前数据表的初始化装载具体为:抽取所述当前数据表中的数据信息,将所述当前数据表中的数据信息发送至目标数据库;所述目标数据库根据所述当前数据表中的数据信息进行同步复制。
6.根据权利要求5所述的数据库同步初始化装载时断点续传的方法,其特征在于,所述步骤S3还包括:查询所述源端数据库的当前LSN值,然后将所述当前LSN值发送至目标数据库;所述目标数据库将所述当前LSN值写入装载同步***表中,作为当前数据表的LSN提交值。
7.根据权利要求6所述的数据库同步初始化装载时断点续传的方法,其特征在于,还包括步骤S4,根据所述当前数据表的LSN提交值对所述当前数据表进行增量同步。
8.根据权利要求7所述的数据库同步初始化装载时断点续传的方法,其特征在于,所述步骤S4具体为:
步骤S41、所述源端数据库的同步进程实时捕获所述源端数据库的事务日志,提取并转换所述事务日志的事务操作,并发送至目标数据库;
步骤S42、所述目标数据库接收所述事物操作后,分析提取所述事物操作的LSN值,如果所述事物操作的LSN值大于所述当前数据表的LSN提交值,则对所述事物操作进行增量同步,否则忽略所述事物操作。
9.根据权利要求1所述的数据库同步初始化装载时断点续传的方法,其特征在于,所述步骤S3中继续执行当前数据表的初始化装载之前,还包括:对所述当前数据表执行TRUNCATE操作,然后再执行I NSERT操作。
CN201811045313.3A 2018-09-07 2018-09-07 一种数据库同步初始化装载时断点续传的方法 Pending CN109408588A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811045313.3A CN109408588A (zh) 2018-09-07 2018-09-07 一种数据库同步初始化装载时断点续传的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811045313.3A CN109408588A (zh) 2018-09-07 2018-09-07 一种数据库同步初始化装载时断点续传的方法

Publications (1)

Publication Number Publication Date
CN109408588A true CN109408588A (zh) 2019-03-01

Family

ID=65464680

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811045313.3A Pending CN109408588A (zh) 2018-09-07 2018-09-07 一种数据库同步初始化装载时断点续传的方法

Country Status (1)

Country Link
CN (1) CN109408588A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110765204A (zh) * 2019-09-30 2020-02-07 武汉达梦数据库有限公司 一种对增量同步异常中断情况的处理方法和装置
CN111639087A (zh) * 2020-05-28 2020-09-08 北京金山云网络技术有限公司 数据库中数据更新方法、装置和电子设备
CN113360495A (zh) * 2021-04-20 2021-09-07 山东英信计算机技术有限公司 一种数据库查询中断的恢复方法、装置、设备及可读介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1834957A (zh) * 2005-03-17 2006-09-20 华为技术有限公司 一种数据库多表信息初始化方法
CN101706803A (zh) * 2009-11-27 2010-05-12 天津工业大学 一种织造车间生产数据的迁移方法
CN103064976A (zh) * 2013-01-14 2013-04-24 浙江水利水电专科学校 基于主动数据库技术的同异构dbms间数据交换方法
CN103970834A (zh) * 2014-04-02 2014-08-06 浙江大学 一种异构数据库同步***中增量数据同步故障的恢复方法
CN104809202A (zh) * 2015-04-24 2015-07-29 联动优势科技有限公司 一种数据库同步的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1834957A (zh) * 2005-03-17 2006-09-20 华为技术有限公司 一种数据库多表信息初始化方法
CN101706803A (zh) * 2009-11-27 2010-05-12 天津工业大学 一种织造车间生产数据的迁移方法
CN103064976A (zh) * 2013-01-14 2013-04-24 浙江水利水电专科学校 基于主动数据库技术的同异构dbms间数据交换方法
CN103970834A (zh) * 2014-04-02 2014-08-06 浙江大学 一种异构数据库同步***中增量数据同步故障的恢复方法
CN104809202A (zh) * 2015-04-24 2015-07-29 联动优势科技有限公司 一种数据库同步的方法和装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110765204A (zh) * 2019-09-30 2020-02-07 武汉达梦数据库有限公司 一种对增量同步异常中断情况的处理方法和装置
CN111639087A (zh) * 2020-05-28 2020-09-08 北京金山云网络技术有限公司 数据库中数据更新方法、装置和电子设备
CN111639087B (zh) * 2020-05-28 2023-09-08 北京金山云网络技术有限公司 数据库中数据更新方法、装置和电子设备
CN113360495A (zh) * 2021-04-20 2021-09-07 山东英信计算机技术有限公司 一种数据库查询中断的恢复方法、装置、设备及可读介质
CN113360495B (zh) * 2021-04-20 2023-02-24 山东英信计算机技术有限公司 一种数据库查询中断的恢复方法、装置、设备及可读介质

Similar Documents

Publication Publication Date Title
CN109408588A (zh) 一种数据库同步初始化装载时断点续传的方法
US6466931B1 (en) Method and system for transparently caching and reusing query execution plans efficiently
EP3120261B1 (en) Dependency-aware transaction batching for data replication
CN105138635B (zh) 一种利用哈希值比对进行数据增量复制的方法
US20150310129A1 (en) Method of managing database, management computer and storage medium
US7676453B2 (en) Partial query caching
NO20171080A1 (en) Apparatus and methods of data synchronization
US20030236780A1 (en) Method and system for implementing dynamic cache of database cursors
CN109325041A (zh) 业务数据处理方法、装置、计算机设备及存储介质
CN109766354A (zh) 业务数据查询的优化方法、装置及设备
US20130198231A1 (en) Distributed query cache in a database system
CN106462586A (zh) 基于记录的多版本并发控制的一致性读取的有效方法和***
US20070282878A1 (en) System and method for online reorganization of a database using flash image copies
JP2011509472A (ja) データをクラスタリングする方法、システム、装置およびその方法を適用するためのコンピュータ・プログラム
CN105426234B (zh) 数据库死锁检测方法及装置
US20190370368A1 (en) Data consistency verification method and system minimizing load of original database
CN107483601A (zh) 一种分布式定时任务的实现方法及执行***
CN112559626B (zh) 一种基于日志解析的ddl操作的同步方法和同步***
CN106407360A (zh) 一种数据的处理方法及装置
CN110232095A (zh) 一种数据同步方法、装置、存储介质和服务器
CN103870511B (zh) 基于共享内存的信息查询设备及方法
KR20200092095A (ko) 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법
CN110717073A (zh) 云流程平台中结合业务数据实现流程查询处理的***及其方法
CN110750594A (zh) 一种基于mysql增量日志实时跨网络数据库同步方法
US7739234B1 (en) Techniques for synchronizing data store tables

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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Fu Quan

Inventor after: Sun Feng

Inventor after: Zhao Jiawei

Inventor before: Fu Quan

Inventor before: Sun Feng

Inventor before: Zhao Jiawei

Inventor before: Yang Chun

CB02 Change of applicant information
CB02 Change of applicant information

Address after: 430000 16-19 / F, building C3, future technology building, 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan, Hubei Province

Applicant after: Wuhan dream database Co., Ltd

Address before: 430000 16-19 / F, building C3, future technology building, 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan, Hubei Province

Applicant before: WUHAN DAMENG DATABASE Co.,Ltd.

CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Sun Feng

Inventor after: Zhao Jiawei

Inventor before: Fu Quan

Inventor before: Sun Feng

Inventor before: Zhao Jiawei

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190301