基于数据库会话变量的数据双向复制方法

文档序号:6437299阅读:254来源:国知局
专利名称:基于数据库会话变量的数据双向复制方法
技术领域
本发明涉及一种基于数据库会话变量的数据双向复制方法,属于数据库技术领域。
背景技术
在数据库的实际应用中,许多的场合需要双方数据库的数据进行复制,复制是将数据或数据库对象从一个数据库复制和分发到另外一个数据库,并进行数据同步,从而使源数据库和目标数据库保持一致。在这个过程中,增量的管理与获取是整个同步的关键因素,由于对变化数据进行触发记录是目前最为高效的实现方法,因此被广泛应用,如Oracle CDC同步模式就主要是通过触发的形式进行增量记录。但是,使用此类方法在同步的应用中无法避免循环增量的问题,如图1所示,当从源库复制到目标库时,如果数据在目标库不做非触发的处理,那么刚复制的增量又会被触发以增量形式进行记录以备同步,同时如果源库也未作非触发的处理,接下来就会将这些已经加载过的数据再次进行复制操作,这样就会导致出现循环复制同一份数据的情况。因此,必须建立一套机制对这种情况加以控制。然而,目前存在的控制方法都具有一定的局限性,参见图2所示,例如在同步过程中,需屏蔽触发器、限制用户不得对数据库进行操作或必须以特定用户登录数据库进行操作等,这样使得数据库的应用操作很不灵活,而且效率低下。

发明内容
本发明所要解决的技术问题在于提供一种利用数据库本身定义的会话变量来对数据库进行双向复制的方法。该方法不限制应用的设定,方便使用、安全可靠。为实现上述的发明目的,本发明采用下述的技术方案—种基于数据库会话变量的数据双向复制方法,至少包含如下步骤查找数据库中存在的会话变量;查看所述数据库中的会话变量的默认值以及允许设定的值,并设定会话变量值;在各数据库中根据已设定的会话变量值分别建立可判断触发的触发器;将复制工具中的会话变量定义为已设定会话变量值的会话变量;运行复制工具,将产生的增量数据进行复制;将复制后的增量数据进行标记或删除。其中,在各数据库中根据已设定的会话变量值分别建立可判断触发的触发器的步骤中进一步包含如下步骤获取当前的会话变量值;根据获取到的会话变量值进行判断,满足条件则触发数据记录,不满足条件则不触发数据记录。较佳地,所述根据获取到的会话变量值进行判断,满足条件则触发数据记录,不满足条件则不触发数据记录的步骤具体为将获取到的当前会话变量值与已设定会话变量值进行比较,相等则触发数据记录,不相等则不触发数据记录。通过本发明的技术方案,实现了数据库之间正确的双向复制。通过利用数据库的会话变量,区分开需要触发的数据与不需要触发的数据,从而避免了增量循环的情况。同时,不限制应用的设定,方便使用、安全可靠。


下面结合附图和具体实施方式
对本发明做进一步的详细说明。图1为现有技术中不限制增量循环的情况下,数据同步时的示意图;图2为现有技术中为控制增量循环所采取的局限性方式的示意图;图3为本发明中基于数据库会话变量的数据双向复制方法的流程图;图4为本发明具体实施方式
中数据库的触发器工作流程图;图5为应用本发明进行双向复制时的工作示意图。
具体实施例方式图3所示为本发明中基于数据库会话变量的数据双向复制方法的流程图。本发明所提供的一种基于数据库会话变量的数据双向复制方法,至少包含如下步骤步骤S101,查找数据库中存在的会话变量;步骤S102,查看所述数据库中的会话变量的默认值以及允许设定的值,并设定会话变量值;步骤S103,在各数据库中根据已设定的会话变量值分别建立可判断触发的触发器;步骤S104,将复制工具中的会话变量定义为已设定会话变量值的会话变量;步骤S105,运行复制工具,将产生的增量数据进行复制;以及步骤S106,将复制后的增量数据进行标记或删除。具体地说,在步骤SlOl中,可以参照数据库厂商提供的用户手册来查找数据库提供的会话变量。接下来,在步骤S102中,同样可以参考数据库厂商给定的用户手册,查看所提供的会话变量给定的默认值,以及可能进行设定的值,并根据实际需要定义好将要使用的会话变量值,以备后续步骤中使用。在步骤S103中,利用数据库提供的方法获取会话变量值来建立触发器,触发器用于在后续步骤中,在其内部进行分支判断,确定是否触发数据记录。步骤S104,按照应用的需求在复制工具中将会话变量值定义为步骤S102中定义的会话变量值。此后在步骤S105、S106中运行复制工具,将产生的增量数据进行复制,完成后把复制的增量数据进行标记或删除。参见图4所示,为本发明的一个具体实施方式
中,触发器的工作流程图。在步骤 S201中,触发器获取当前的会话变量值;在步骤S202中,将获取到的当前会话变量值与已设定会话变量值进行比较,相等则进入步骤S203,触发数据记录;不相等则进入步骤S204, 不触发数据记录。可以理解的是,在其它实施方式中,也可以选择其它预设条件进行触发判断,满足预设条件则触发数据记录,不满足预设条件则不触发数据记录。参见图5所示,为应用本发明进行双向复制时的工作示意图。由于在本发明中将增量数据定义为两种形式,一种是数据库本身的业务逻辑操作产生的增量数据,即需要触发复制的数据;一种是从其他数据库复制过来的增量数据,即需要避免再次触发复制的数据。针对这两种形式的增量数据,利用数据库定义的会话级变量加以判断是否进行增量记录,因此,本发明的技术方案保障了数据库之间数据的正确复制,避免了增量循环。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。以上对本发明所提供的基于数据库会话变量的数据双向复制方法进行了详细的说明。对本领域的技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。
权利要求
1.一种基于数据库会话变量的数据双向复制方法,其特征在于,至少包含如下步骤 查找数据库中存在的会话变量;查看所述数据库中的会话变量的默认值以及允许设定的值,并设定会话变量值; 在各数据库中根据已设定的会话变量值分别建立可判断触发的触发器; 将复制工具中的会话变量定义为已设定会话变量值的会话变量; 运行复制工具,将产生的增量数据进行复制;以及将复制后的增量数据进行标记或删除。
2.如权利要求1所述的数据双向复制方法,其特征在于,在各数据库中根据已设定的会话变量值分别建立可判断触发的触发器的步骤中进一步包含如下步骤获取当前会话变量值;根据获取到的当前会话变量值进行判断,满足预设条件则触发数据记录,不满足预设条件则不触发数据记录。
3.如权利要求2所述的数据双向复制方法,其特征在于,所述根据获取到的当前会话变量值进行判断,满足预设条件则触发数据记录,不满足预设条件则不触发数据记录的步骤具体为将获取到的当前会话变量值与已设定会话变量值进行比较,相等则触发数据记录,不相等则不触发数据记录。
全文摘要
本发明公开了一种基于数据库会话变量的数据双向复制方法,至少包含如下步骤查找数据库中存在的会话变量;查看所述数据库中的会话变量的默认值以及允许设定的值,并设定会话变量值;在各数据库中根据已设定的会话变量值分别建立可判断触发的触发器;将复制工具中的会话变量定义为已设定会话变量值的会话变量;运行复制工具,将产生的增量数据进行复制;将复制后的增量数据进行标记或删除。本发明利用数据库定义的会话变量加以判断是否进行增量记录以保障数据库之间数据的正确复制,避免增量循环。
文档编号G06F17/30GK102436486SQ20111034141
公开日2012年5月2日 申请日期2011年10月31日 优先权日2011年10月31日
发明者初建军, 曾浩, 武向辉, 贺警阳 申请人:北京人大金仓信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1