数据库中数据双向同步的方法及设备技术

技术编号:22075728 阅读:53 留言:0更新日期:2019-09-12 14:09
本发明专利技术实施例提供了一种数据库中数据双向同步的方法及设备。其中,所述方法包括:给双向数据同步服务分配标记,将分配标记后的双向数据同步服务,与相应的目标端数据库建立连接,并将所述标记设置在所述连接上;分析同步日志文件,获取日志操作中的事务,并提取所述事务中相应的所述标记,若所述标记中的值不与所述同步服务分配的标记值对应,则所述双向数据同步服务采用设置了所述标记的连接,将所述事务发送至目标端数据库进行同步。本发明专利技术实施例提供的数据库中数据双向同步的方法及设备,可以在无需创建辅助表以及执行辅助表数据插入的情况下,实现DDL操作和DML操作的双向同步,避免同步操作陷入死循环。

The Method and Equipment of Data Bidirectional Synchronization in Database

【技术实现步骤摘要】
数据库中数据双向同步的方法及设备
本专利技术实施例涉及数据库数据同步
,尤其涉及一种数据库中数据双向同步的方法及设备。
技术介绍
在基于日志分析的数据库数据实时同步领域,数据库双向同步架构的技术关键在于如何对同步日志信息进行有效的控制和过滤,防止在特殊的双向环境,如双向实时同步以及环型结构同步中造成数据同步的死循环。目前,在数据库的DML(DataManipulationLanguage数据操纵语言)操作同步过程中,为保证双向同步的各数据库能够正确的完成同步操作,一般采用的方法如下:在目标数据库中创建一个提交事务表,记录已完成的提交事务信息。该表为同步系统内部表,需要与普通同步表进行区分。目标数据库复制进程在接收到源端数据库的提交事务信息时,会先在目标数据库中执行相应的事务操作,然后再在提交事务表中插入一行事务信息记录,复制进程会将源端数据库发送过来的事务操作,与最后一条插入提交事务表的事务信息记录,一起设置为一个整体的事务进行提交操作。该技术策略有两个好处:一是充分利用事务的ACID特性(原子性:Atomicity、一致性:Consistency、隔离性:Isolation、持久性:Durability),将同步事务操作与插入提交事务表操作构成一个整体,保证执行与记录的完整性和一致性。二是目标库事务同步时,会操作内部提交事务表,复制进程可以根据该辅助表来识别出该事务是由复制进程传递的事务还是第三方应用执行的事务,从而有效进行事务信息的控制和过滤。虽然上述方法可以实现数据库双向同步的事务过滤,但是需要在源和目标端数据库中创建辅助表(即前述的提交事务表),并对辅助表进行插入操作,对数据库有一定的侵入性,在一些敏感的生产系统上,可能会存在风险。另外,数据库的DDL(datadefinationlanguage,数据库定义语言)操作则不能有效利用上述DML操作的策略进行双向同步中的控制。DDL操作只能作为独立事务进行操作,不能把操作目标库上的提交事务表和它所属的DDL操作合并成一个事务进行提交,导致日志捕获解析时无法标识出DDL操作的来源,无条件的同步DDL操作会导致该DDL操作在成环的同步链路中形成死循环。因此,找到一种在无需创建辅助表以及执行辅助表数据插入的情况下,实现DDL操作和DML操作的双向同步,避免同步操作陷入死循环的方法,就成为业界亟待解决的技术问题。
技术实现思路
针对现有技术存在的上述问题,本专利技术实施例提供了一种数据库中数据双向同步的方法及设备。第一方面,本专利技术的实施例提供了一种数据库中数据双向同步的方法,包括:给双向数据同步服务分配标记,将分配标记后的双向数据同步服务,与相应的目标端数据库建立连接,并将所述标记设置在所述连接上;分析同步日志文件,获取日志操作中的事务,并提取所述事务中相应的所述标记,若所述标记中的值不与所述同步服务分配的标记值对应,则所述双向数据同步服务采用设置了所述标记的连接,将所述事务发送至目标端数据库进行同步。进一步地,所述给双向数据同步服务分配标记,包括:给双向数据同步服务分配唯一标记。进一步地,所述标记,包括:数字和/或字符串。进一步地,所述并将所述标记设置在所述连接上,包括:采用DBMS_STREAMS数据包中的SET_TAG函数,将所述标记设置在所述连接上;其中,所述DBMS_STREAMS数据包由数据库提供。进一步地,所述的数据库中数据双向同步的方法,还包括:若所述同步服务分配标记中的值与所述捕获到的事务中标记值相对应,则丢弃所述事务。第二方面,本专利技术的实施例提供了一种数据库中数据双向同步的装置,包括:标记设置于连接建立模块,用于给双向数据同步服务分配标记,将分配标记后的双向数据同步服务,与相应的目标端数据库建立连接,并将所述标记设置在所述连接上;数据同步模块,用于分析同步日志文件,获取日志操作中的事务,并提取所述事务中相应的所述标记,若所述标记中的值不与所述同步服务分配的标记值对应,则所述双向数据同步服务采用设置了所述标记的连接,将所述事务发送至目标端数据库进行同步。第三方面,本专利技术的实施例提供了一种电子设备,包括:至少一个处理器;以及与处理器通信连接的至少一个存储器,其中:存储器存储有可被处理器执行的程序指令,处理器调用程序指令能够执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的数据库中数据双向同步的方法。第四方面,本专利技术的实施例提供了一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的数据库中数据双向同步的方法。本专利技术实施例提供的数据库中数据双向同步的方法及设备,通过在数据双向同步服务中分配标记,并将所述标记设置在连接上,根据所述标记判断事务有效性后,双向数据同步服务采用设置了标记的连接,将操作事务发送至目标端数据库进行同步,可以在无需创建辅助表以及执行辅助表数据插入的情况下,实现DDL操作和DML操作的双向同步,避免同步操作陷入死循环。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单的介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的数据库中数据双向同步的方法流程图;图2为本专利技术实施例提供的数据库中数据双向同步的装置结构示意图;图3为本专利技术实施例提供的电子设备的实体结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。另外,本专利技术提供的各个实施例或单个实施例中的技术特征可以相互任意结合,以形成可行的技术方案,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本专利技术要求的保护范围之内。当前的数据库数据同步
中,主要问题在于无法标识出DDL操作的来源的问题,针对普通的DML操作同步也无需在源和目标库上创建任何辅助表。采用数据库提供的DBMS_STREAMS包功能,该包中SET_TAG函数允许设置与数据库建立连接的标记,设置完标记的连接在做任何数据库修改动作时,产生的数据库日志中都会包含该标记信息。在日志分析时,可以借助事务中的连接标记信息区分出事务的具体来源。在此基础上,本专利技术实施例提供了一种数据库中数据双向同步的方法,参见图1,该方法包括:101、给双向数据同步服务分配标记,将分配标记后的双向数据同步服务,与相应的目标端数据库建立连接,并将所述标记设置在所述连接上;102、分析同步日志文件,获取日志操作中的事务,并提取所述事务中相应的所述标记,若所述标记中的值不与所述同步服务分配的标记值对应,则所述双向数据同步服务采用设置了所述标记的连接,将所述事务发送至目标端数据库进行同步。基于上述方法实施例本文档来自技高网
...

【技术保护点】
1.一种数据库中数据双向同步的方法,其特征在于,包括:给双向数据同步服务分配标记,将分配标记后的双向数据同步服务,与相应的目标端数据库建立连接,并将所述标记设置在所述连接上;分析同步日志文件,获取日志操作中的事务,并提取所述事务中相应的所述标记,若所述标记中的值不与所述同步服务分配的标记值对应,则所述双向数据同步服务采用设置了所述标记的连接,将所述事务发送至目标端数据库进行同步。

【技术特征摘要】
1.一种数据库中数据双向同步的方法,其特征在于,包括:给双向数据同步服务分配标记,将分配标记后的双向数据同步服务,与相应的目标端数据库建立连接,并将所述标记设置在所述连接上;分析同步日志文件,获取日志操作中的事务,并提取所述事务中相应的所述标记,若所述标记中的值不与所述同步服务分配的标记值对应,则所述双向数据同步服务采用设置了所述标记的连接,将所述事务发送至目标端数据库进行同步。2.根据权利要求1所述的数据库中数据双向同步的方法,其特征在于,所述给双向数据同步服务分配标记,包括:给双向数据同步服务分配唯一标记。3.根据权利要求1或2所述的数据库中数据双向同步的方法,其特征在于,所述标记,包括:数字和/或字符串。4.根据权利要求1所述的数据库中数据双向同步的方法,其特征在于,所述并将所述标记设置在所述连接上,包括:采用DBMS_STREAMS数据包中的SET_TAG函数,将所述标记设置在所述连接上;其中,所述DBMS_STREAMS数据包由数据库提供。5.根据权利要求1所述的数据库中数据双向同步的方法,其特征在于,还...

【专利技术属性】
技术研发人员:付铨孙峰余院兰赵家威
申请(专利权)人:武汉达梦数据库有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1