CN102436486A - 基于数据库会话变量的数据双向复制方法 - Google Patents
基于数据库会话变量的数据双向复制方法 Download PDFInfo
- Publication number
- CN102436486A CN102436486A CN2011103414147A CN201110341414A CN102436486A CN 102436486 A CN102436486 A CN 102436486A CN 2011103414147 A CN2011103414147 A CN 2011103414147A CN 201110341414 A CN201110341414 A CN 201110341414A CN 102436486 A CN102436486 A CN 102436486A
- Authority
- CN
- China
- Prior art keywords
- database
- session variable
- data
- value
- session
- 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.)
- Granted
Links
Images
Abstract
本发明公开了一种基于数据库会话变量的数据双向复制方法,至少包含如下步骤:查找数据库中存在的会话变量;查看所述数据库中的会话变量的默认值以及允许设定的值,并设定会话变量值;在各数据库中根据已设定的会话变量值分别建立可判断触发的触发器;将复制工具中的会话变量定义为已设定会话变量值的会话变量;运行复制工具,将产生的增量数据进行复制;将复制后的增量数据进行标记或删除。本发明利用数据库定义的会话变量加以判断是否进行增量记录以保障数据库之间数据的正确复制,避免增量循环。
Description
技术领域
本发明涉及一种基于数据库会话变量的数据双向复制方法,属于数据库技术领域。
背景技术
在数据库的实际应用中,许多的场合需要双方数据库的数据进行复制,复制是将数据或数据库对象从一个数据库复制和分发到另外一个数据库,并进行数据同步,从而使源数据库和目标数据库保持一致。在这个过程中,增量的管理与获取是整个同步的关键因素,由于对变化数据进行触发记录是目前最为高效的实现方法,因此被广泛应用,如Oracle CDC同步模式就主要是通过触发的形式进行增量记录。
但是,使用此类方法在同步的应用中无法避免循环增量的问题,如图1所示,当从源库复制到目标库时,如果数据在目标库不做非触发的处理,那么刚复制的增量又会被触发以增量形式进行记录以备同步,同时如果源库也未作非触发的处理,接下来就会将这些已经加载过的数据再次进行复制操作,这样就会导致出现循环复制同一份数据的情况。因此,必须建立一套机制对这种情况加以控制。
然而,目前存在的控制方法都具有一定的局限性,参见图2所示,例如在同步过程中,需屏蔽触发器、限制用户不得对数据库进行操作或必须以特定用户登录数据库进行操作等,这样使得数据库的应用操作很不灵活,而且效率低下。
发明内容
本发明所要解决的技术问题在于提供一种利用数据库本身定义的会话变量来对数据库进行双向复制的方法。该方法不限制应用的设定,方便使用、安全可靠。
为实现上述的发明目的,本发明采用下述的技术方案:
一种基于数据库会话变量的数据双向复制方法,至少包含如下步骤:
查找数据库中存在的会话变量;
查看所述数据库中的会话变量的默认值以及允许设定的值,并设定会话变量值;
在各数据库中根据已设定的会话变量值分别建立可判断触发的触发器;
将复制工具中的会话变量定义为已设定会话变量值的会话变量;
运行复制工具,将产生的增量数据进行复制;
将复制后的增量数据进行标记或删除。
其中,在各数据库中根据已设定的会话变量值分别建立可判断触发的触发器的步骤中进一步包含如下步骤:
获取当前的会话变量值;
根据获取到的会话变量值进行判断,满足条件则触发数据记录,不满足条件则不触发数据记录。
较佳地,所述根据获取到的会话变量值进行判断,满足条件则触发数据记录,不满足条件则不触发数据记录的步骤具体为:将获取到的当前会话变量值与已设定会话变量值进行比较,相等则触发数据记录,不相等则不触发数据记录。
通过本发明的技术方案,实现了数据库之间正确的双向复制。通过利用数据库的会话变量,区分开需要触发的数据与不需要触发的数据,从而避免了增量循环的情况。同时,不限制应用的设定,方便使用、安全可靠。
附图说明
下面结合附图和具体实施方式对本发明做进一步的详细说明。
图1为现有技术中不限制增量循环的情况下,数据同步时的示意图;
图2为现有技术中为控制增量循环所采取的局限性方式的示意图;
图3为本发明中基于数据库会话变量的数据双向复制方法的流程图;
图4为本发明具体实施方式中数据库的触发器工作流程图;
图5为应用本发明进行双向复制时的工作示意图。
具体实施方式
图3所示为本发明中基于数据库会话变量的数据双向复制方法的流程图。本发明所提供的一种基于数据库会话变量的数据双向复制方法,至少包含如下步骤:
步骤S101,查找数据库中存在的会话变量;
步骤S102,查看所述数据库中的会话变量的默认值以及允许设定的值,并设定会话变量值;
步骤S103,在各数据库中根据已设定的会话变量值分别建立可判断触发的触发器;
步骤S104,将复制工具中的会话变量定义为已设定会话变量值的会话变量;
步骤S105,运行复制工具,将产生的增量数据进行复制;以及
步骤S106,将复制后的增量数据进行标记或删除。
具体地说,在步骤S101中,可以参照数据库厂商提供的用户手册来查找数据库提供的会话变量。接下来,在步骤S102中,同样可以参考数据库厂商给定的用户手册,查看所提供的会话变量给定的默认值,以及可能进行设定的值,并根据实际需要定义好将要使用的会话变量值,以备后续步骤中使用。在步骤S103中,利用数据库提供的方法获取会话变量值来建立触发器,触发器用于在后续步骤中,在其内部进行分支判断,确定是否触发数据记录。步骤S104,按照应用的需求在复制工具中将会话变量值定义为步骤S102中定义的会话变量值。此后在步骤S105、S106中运行复制工具,将产生的增量数据进行复制,完成后把复制的增量数据进行标记或删除。
参见图4所示,为本发明的一个具体实施方式中,触发器的工作流程图。在步骤S201中,触发器获取当前的会话变量值;在步骤S202中,将获取到的当前会话变量值与已设定会话变量值进行比较,相等则进入步骤S203,触发数据记录;不相等则进入步骤S204,不触发数据记录。可以理解的是,在其它实施方式中,也可以选择其它预设条件进行触发判断,满足预设条件则触发数据记录,不满足预设条件则不触发数据记录。
参见图5所示,为应用本发明进行双向复制时的工作示意图。由于在本发明中将增量数据定义为两种形式,一种是数据库本身的业务逻辑操作产生的增量数据,即需要触发复制的数据;一种是从其他数据库复制过来的增量数据,即需要避免再次触发复制的数据。针对这两种形式的增量数据,利用数据库定义的会话级变量加以判断是否进行增量记录,因此,本发明的技术方案保障了数据库之间数据的正确复制,避免了增量循环。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
以上对本发明所提供的基于数据库会话变量的数据双向复制方法进行了详细的说明。对本领域的技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。
Claims (3)
1.一种基于数据库会话变量的数据双向复制方法,其特征在于,至少包含如下步骤:
查找数据库中存在的会话变量;
查看所述数据库中的会话变量的默认值以及允许设定的值,并设定会话变量值;
在各数据库中根据已设定的会话变量值分别建立可判断触发的触发器;
将复制工具中的会话变量定义为已设定会话变量值的会话变量;
运行复制工具,将产生的增量数据进行复制;以及
将复制后的增量数据进行标记或删除。
2.如权利要求1所述的数据双向复制方法,其特征在于,在各数据库中根据已设定的会话变量值分别建立可判断触发的触发器的步骤中进一步包含如下步骤:
获取当前会话变量值;
根据获取到的当前会话变量值进行判断,满足预设条件则触发数据记录,不满足预设条件则不触发数据记录。
3.如权利要求2所述的数据双向复制方法,其特征在于,所述根据获取到的当前会话变量值进行判断,满足预设条件则触发数据记录,不满足预设条件则不触发数据记录的步骤具体为:将获取到的当前会话变量值与已设定会话变量值进行比较,相等则触发数据记录,不相等则不触发数据记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110341414.7A CN102436486B (zh) | 2011-10-31 | 2011-10-31 | 基于数据库会话变量的数据双向复制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110341414.7A CN102436486B (zh) | 2011-10-31 | 2011-10-31 | 基于数据库会话变量的数据双向复制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102436486A true CN102436486A (zh) | 2012-05-02 |
CN102436486B CN102436486B (zh) | 2014-12-31 |
Family
ID=45984548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110341414.7A Active CN102436486B (zh) | 2011-10-31 | 2011-10-31 | 基于数据库会话变量的数据双向复制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102436486B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970833A (zh) * | 2014-04-02 | 2014-08-06 | 浙江大学 | 一种基于日志的异构数据库同步系统中双向同步数据循环的解决方法 |
CN106202365A (zh) * | 2016-07-07 | 2016-12-07 | 帅斌鹏 | 数据库更新同步的方法、系统及数据库集群 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6122630A (en) * | 1999-06-08 | 2000-09-19 | Iti, Inc. | Bidirectional database replication scheme for controlling ping-ponging |
-
2011
- 2011-10-31 CN CN201110341414.7A patent/CN102436486B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6122630A (en) * | 1999-06-08 | 2000-09-19 | Iti, Inc. | Bidirectional database replication scheme for controlling ping-ponging |
Non-Patent Citations (2)
Title |
---|
徐波等: "一个通用双向数据库复制的解决方案", 《计算机应用》, vol. 23, no. 9, 28 September 2003 (2003-09-28), pages 141 - 142 * |
王玉标等: "异构环境下数据库增量同步更新机制", 《计算机工程与设计》, vol. 32, no. 3, 16 March 2011 (2011-03-16) * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970833A (zh) * | 2014-04-02 | 2014-08-06 | 浙江大学 | 一种基于日志的异构数据库同步系统中双向同步数据循环的解决方法 |
CN103970833B (zh) * | 2014-04-02 | 2017-08-15 | 浙江大学 | 一种基于日志的异构数据库同步系统中双向同步数据循环的解决方法 |
CN106202365A (zh) * | 2016-07-07 | 2016-12-07 | 帅斌鹏 | 数据库更新同步的方法、系统及数据库集群 |
CN106202365B (zh) * | 2016-07-07 | 2020-01-31 | 帅斌鹏 | 数据库更新同步的方法、系统及数据库集群 |
Also Published As
Publication number | Publication date |
---|---|
CN102436486B (zh) | 2014-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101855620B (zh) | 数据处理设备和数据处理方法 | |
KR101556435B1 (ko) | 데이터베이스 백업본 복구 방법 및 그 장치 | |
CN105205053A (zh) | 一种数据库增量日志解析方法及系统 | |
CN105302533A (zh) | 代码同步方法和装置 | |
KR20150087325A (ko) | 협업형 cax 편집을 위한 시스템, 방법 및 장치 | |
CN104331285A (zh) | 一种代码自动生成方法及系统 | |
CA2447516A1 (en) | Management and synchronization application for network file system | |
CN104301360A (zh) | 一种日志数据记录的方法、日志服务器及系统 | |
CN113918385B (zh) | 虚拟机在线增量备份恢复的方法、装置、电子设备及介质 | |
CN105573859A (zh) | 一种数据库的数据恢复方法和设备 | |
CN104239443A (zh) | 一种序列化数据操作日志的存储方法 | |
CN104376073A (zh) | 一种数据库恢复方法及装置 | |
CN103631590B (zh) | 自动化测试脚本的编辑方法 | |
CN103914458A (zh) | 一种海量数据迁移的方法及装置 | |
CN102984737B (zh) | 一种无线网络的参数统一配置方法及装置 | |
CN110737806A (zh) | 面向业务实体的全局id生成方法及装置 | |
CN104516864A (zh) | 一种报表生成方法及装置 | |
CN113407514A (zh) | 一种数据库迁移的方法、装置、设备及可读介质 | |
EP1933236A1 (en) | Branch Office and remote server smart archiving based on mirroring and replication software | |
CN109491834A (zh) | 一种应用于数据库的数据恢复方法及装置 | |
CN107315652B (zh) | 一种数据备份方法及云hdfs系统 | |
CN104915462A (zh) | 一种文件管理方法及系统 | |
CN103294658B (zh) | 一种文档保存方法及装置 | |
CN102436486A (zh) | 基于数据库会话变量的数据双向复制方法 | |
CN104572492A (zh) | 一种烧录数据到fat32分区的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |