CN1477546A - 一种在两个数据库间进行相同数据表数据复制的方法 - Google Patents
一种在两个数据库间进行相同数据表数据复制的方法 Download PDFInfo
- Publication number
- CN1477546A CN1477546A CNA02136575XA CN02136575A CN1477546A CN 1477546 A CN1477546 A CN 1477546A CN A02136575X A CNA02136575X A CN A02136575XA CN 02136575 A CN02136575 A CN 02136575A CN 1477546 A CN1477546 A CN 1477546A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- duplicated
- databases
- record
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明为解决两个不同版本数据库间的数据复制中存在的效率低下、操作烦琐和数据易遭破坏的问题,通过采用数据库触发器技术和编制数据复制软件,实现了以非文件的方式进行数据的大批量复制。
Description
技术领域
本发明涉及在两个数据库间进行相同数据表的数据复制,尤其涉及以非文件的方式实现两个在线数据库间相同数据表的数据复制。
背景技术
在信息系统中,两个数据库间往往需要进行大量的数据复制。在相同版本的数据库系统中,数据复制可以通过数据库自身的复制功能来实现,而对于不同版本的数据库之间的数据复制,现有的方法是将源数据库中所需复制的表中的所有数据全部导出,生成一个文件,再将目的数据库的相应表中的所有记录全部删除,将生成的文件导入目的数据库,从而完成两个数据库间的数据复制。
由于不同数据库间的数据复制不是一个增量复制,即每次导出数据都要将所需复制的表中的所有数据全部导出,而无法只导出变化的数据。这样,若需要复制的数据量很大且复制操作频繁的话,则这种全盘复制的方法既烦琐效率又低,而且采取这种文件交换的方式,还存在着若文件被破坏则所有数据都无法复制的隐患。
发明内容
针对上述使用文件交换复制数据的方法所存在的缺点,本发明采用了一种在两个数据库间进行相同数据表数据复制的方法,即利用本发明的数据库触发技术,结合建立的交换控制表和数据日志表,运行编制的数据软件,通过数据库间的数据链路只对变化的数据进行复制,即对数据库间的数据进行增量复制。
本发明按照如下技术方案来实现不同数据库间的数据复制。首先在源数据库中要复制的业务表上建立三个数据库触发器,分别对应业务表的增、删、更新操作;分别为每个数据库建立一个标识,并建立数据库间的数据链路,使两个数据库可以互访。其次,在源数据库和目的数据库中分别建立数据日志表和交换控制表。其中,数据日志表记录了所要复制业务表的触发器产生的数据日志号和数据日志内容,数据日志内容又包括需要向其它数据库上传和下传的表名、变化记录的主键,以及什么样的变化,如增、删操作(更新操作相当于先删后增);交换控制表中记录了当前数据库需要向其它数据库上传和下传的表名、当前数据日志表中最后复制的日志号码、源数据库的标识和目标数据库的标识。接着,采用下述步骤进行数据复制:
a.对源数据库的业务表进行增、删操作时触发了建立的增、删、更新三个触发器,使业务表中变化的记录转换成相应的数据日志记录;
b.连通源数据库和目的数据库服务器的网络连接,使数据复制软件能通过数据库标识和数据链路与数据库相连接;
c.运行数据复制软件;
c1.根据数据控制表,取得要复制的表名和最新日志编号;
c2.根据数据日志表,从业务表中取得相应的记录;
c3.根据数据日志表中的操作,将取得的源数据库中的相应记录对目的数据库的业务表进行更新;
d.将交换控制表中的最新复制日志号设置成最后一次复制的日志编号。
采用本发明,避免了在数据量大、数据交换频繁的情况下进行全表数据复制所带来的低效率、数据库压力大和一旦导出文件被破坏时数据无法被复制的缺陷,是一种灵活的数据库之间的非文件方式的在线数据复制方法。
附图说明
图1为oracle personal数据库和oracle enterprise数据库间的增量数据上传复制流程图。
具体实施方式
下面结合附图和一个实施例对本发明进行详细说明。
适用于本发明的在两个在线数据库间进行相同数据表的数据复制发生在oraclepersonal数据库和oracle enterprise数据库之间。把oracle personal数据库标识为person,把oracle enterprise数据库标识为enterprise。Person和enterprise中各有一张结构相同的t_up表和一张结构相同的t_down表。现在需要将person中的t_up表复制到enterprise中的t_up表,以及将enterpri se中的t_down表复制到person中的t_down表中。
首先,在person库中建立一个与enterprise库相连的名为enterprise&repl的数据链路;在person库中的t_up表上分别建立代表增、删、更新操作的三个触发器,在enterprise库中的t_down表上也分别建立代表增、删、更新操作的三个触发器。
其次,在对person库中的t_up表进行增、删、更新操作时,由触发器产生的日志内容记录在下面的已建于person库中的数据日志中(表名为log):
同时,在person库中建立了如下的数据控制表(表名为ctrl),其一条记录代表t_up的上传,一条记录代表t_down的下传:
no | 日志的编号,自动加一 |
table_name | 要复制的表名,当前情况下里面的内容都是“t_up” |
oper | 1代表增加,0代表删除 |
pk_value | t_up中变化记录的主键 |
字段名 | 作用 | 两条记录各自的内容 | |
table_name | 要复制的表名 | t_up | “t_up” |
t_down | “t_down” | ||
Sourse | 源数据库的标识 | t_up | “person” |
t_down | “enterprise” | ||
target | 目标数据库的标识 | t_up | “enterprise” |
t_down | “person” | ||
Max_no | 最近一次复制的日志的编号 | t_up | 初始是0 |
t_down |
类似的,enterprise库中也有一张结构与log一致的数据日志表,其内容由enterprise库中的t_down的触发器产生:
no | 日志的编号,自动加一 |
table_name | 要复制的表名,当前情况下里面的内容都是“t_down” |
oper | 1代表增加,0代表删除 |
pk_value | t_down中变化记录的主键 |
进行这两个不同的数据库间的数据复制。即先通过对person库中的t_up表输入、删除或更新许多记录时,利用不同的触发器在person库中的log表中产生了许多日志记录,如在t_up表中新加一条记录,log中就相应增加这样一条记录:no为当前最大号加一,table_name为“t_up”,oper为“1”,pk_value为该业务记录的主键值。相应的,通过业务软件在enterprise库中的t_down表中输入、删除或更新了许多记录,利用不同的触发器在enterprise库中的log表中也产生了许多日志记录。
如图1所示,运行数据复制软件,通过ctrl表的source字段和target字段可知要上传t_up表和下传t_down表。本实施例仅以上传为例,下传情况一样,只是数据源不同,并从max_no字段中知道要从log表中的哪条记录开始复制。
连通person库的ctrl表的target字段中存放的库名即enterprise库,根据log表中的pk_value字段找到person库中t_up表中的相应记录,取出该记录,同时得到log表中oper字段的值,如果是1(增加),就把得到的记录插入到enterprise库中的表t_up中,从而完成本条记录的上传工作。log表中其余每条日志也像上述操作一样,就可以把所有的日志都转化为enterprise库中t_up中的内容。复制完成后在ctrl表中将max_no设成最后一次复制的日志的编号即可,这样以后的复制过程就不会再复制已复制过的记录了。
下传数据道理相同,只是在enterprise库中根据log取出t_down的数据复制到person库中。这样,就完成了整个数据库的增量数据复制过程。
Claims (7)
1、一种在两个数据库间进行相同数据表数据复制的方法,其特征在于,所述方法包括如下步骤:
步骤a、在数据库数据业务表中建立增、删、更新三个触发器;
步骤b、在数据库中建立一张数据日志表和一张交换控制表;
步骤c、通过业务表的增、删、更新操作,触发相应触发器,将数据业务表中变化的记录转换成数据日志表中相应的日志记录;
步骤d、连通源数据库所在的数据库服务器和目的数据库所在的数据库服务器,通过数据库标识和数据链路,使应用软件能连接源数据库和目的数据库;
步骤e、运行数据复制软件,完成数据复制;
步骤d、将交换控制表中的最新复制日志号设置成最后一次复制的日志编号。
2、如权利要求1所述的一种在两个数据库间进行相同数据表数据复制的方法,其特征在于,在步骤b中所述的交换控制表包括当前数据库需要向其它数据库上传和下传的表的名称、当前数据日志表中最后复制的日志号码、源数据库的标识和目标数据库的标识。
3、如权利要求1所述的一种在两个数据库间进行相同数据表数据复制的方法,其特征在于,在步骤b中所述的数据日志表包括需要复制的业务表的触发器产生的含有向其它数据库上传和下传的表名、变化记录的主键、变化的状态的数据日志和数据日志号码。
4、如权利要求1所述的一种在两个数据库间进行相同数据表数据复制的方法,其特征在于,在步骤d中通过为每个数据库建立一个标识,和建立数据库间的数据链路,使源数据库和目的数据库可以互访。
5、如权利要求1所述的一种在两个数据库间进行相同数据表数据复制的方法,其特征在于,在数据库中要复制的业务表上建立用于对业务表进行新增、删除、更新操作时,将生成的相应数据日志保存到数据日志表中的数据库触发器。
6、如权利要求1所述的一种在两个数据库间进行相同数据表数据复制的方法,其特征在于,编制一个将数据日志表中的日志转化为目标数据库中相应业务表中数据的应用程序。
7、如权利要求1所述的一种在两个数据库间进行相同数据表数据复制的方法,其特征在于,在步骤e中所述的数据复制软件包括如下步骤,
步骤a、通过数据控制表,取得要复制的表名和最新日志编号;
步骤b、通过数据日志表,从业务表中取得相应的记录;
步骤c、通过数据库间的连接,根据数据日志表中的操作,将取得的源数据库中的相应记录对目的数据库的业务表进行更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA02136575XA CN1477546A (zh) | 2002-08-19 | 2002-08-19 | 一种在两个数据库间进行相同数据表数据复制的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA02136575XA CN1477546A (zh) | 2002-08-19 | 2002-08-19 | 一种在两个数据库间进行相同数据表数据复制的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1477546A true CN1477546A (zh) | 2004-02-25 |
Family
ID=34146550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA02136575XA Pending CN1477546A (zh) | 2002-08-19 | 2002-08-19 | 一种在两个数据库间进行相同数据表数据复制的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1477546A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100416564C (zh) * | 2004-04-06 | 2008-09-03 | 株式会社Ntt都科摩 | 存储器映射控制装置、信息存储控制装置及数据移动方法 |
CN100461164C (zh) * | 2004-03-29 | 2009-02-11 | 微软公司 | 用于基于版本控制的触发器的系统和方法 |
CN101944128A (zh) * | 2010-09-25 | 2011-01-12 | 中兴通讯股份有限公司 | 数据导出、导入的方法和装置 |
CN102065413A (zh) * | 2010-11-17 | 2011-05-18 | 北京北方烽火科技有限公司 | 数据库升级方法及系统、基站自启动方法及系统 |
CN102419767A (zh) * | 2011-11-02 | 2012-04-18 | 攀钢集团西昌钢钒有限公司 | 热轧过程控制与制造执行管理的数据交换方法 |
CN101266606B (zh) * | 2007-03-15 | 2012-06-20 | 阿里巴巴集团控股有限公司 | 一种基于Oracle数据库的在线数据迁移方法 |
CN102541942A (zh) * | 2010-12-31 | 2012-07-04 | 中国银联股份有限公司 | 一种数据批量转移系统及其方法 |
CN102609479A (zh) * | 2012-01-20 | 2012-07-25 | 北京神州数码思特奇信息技术股份有限公司 | 一种内存数据库节点复制方法 |
CN102663547A (zh) * | 2012-03-28 | 2012-09-12 | 积成电子股份有限公司 | 电力调度主备系统全模型同步保持资源id不变化的方法 |
CN101770484B (zh) * | 2008-12-31 | 2012-12-26 | 北大方正集团有限公司 | 一种网站更新实时发布的方法及系统 |
CN101499069B (zh) * | 2008-02-02 | 2013-06-05 | 中兴通讯股份有限公司 | 内存数据库文件的更新方法及更新装置 |
CN106446133A (zh) * | 2016-09-19 | 2017-02-22 | 广东中标数据科技股份有限公司 | 同时对接两个数据库的方法及装置 |
CN107590277A (zh) * | 2017-09-28 | 2018-01-16 | 泰康保险集团股份有限公司 | 数据同步方法、装置、电子设备及存储介质 |
-
2002
- 2002-08-19 CN CNA02136575XA patent/CN1477546A/zh active Pending
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100461164C (zh) * | 2004-03-29 | 2009-02-11 | 微软公司 | 用于基于版本控制的触发器的系统和方法 |
CN100416564C (zh) * | 2004-04-06 | 2008-09-03 | 株式会社Ntt都科摩 | 存储器映射控制装置、信息存储控制装置及数据移动方法 |
CN101266606B (zh) * | 2007-03-15 | 2012-06-20 | 阿里巴巴集团控股有限公司 | 一种基于Oracle数据库的在线数据迁移方法 |
CN101499069B (zh) * | 2008-02-02 | 2013-06-05 | 中兴通讯股份有限公司 | 内存数据库文件的更新方法及更新装置 |
CN101770484B (zh) * | 2008-12-31 | 2012-12-26 | 北大方正集团有限公司 | 一种网站更新实时发布的方法及系统 |
CN101944128A (zh) * | 2010-09-25 | 2011-01-12 | 中兴通讯股份有限公司 | 数据导出、导入的方法和装置 |
CN102065413A (zh) * | 2010-11-17 | 2011-05-18 | 北京北方烽火科技有限公司 | 数据库升级方法及系统、基站自启动方法及系统 |
CN102065413B (zh) * | 2010-11-17 | 2014-03-12 | 北京北方烽火科技有限公司 | 数据库升级方法及系统、基站自启动方法及系统 |
CN102541942A (zh) * | 2010-12-31 | 2012-07-04 | 中国银联股份有限公司 | 一种数据批量转移系统及其方法 |
CN102541942B (zh) * | 2010-12-31 | 2014-09-17 | 中国银联股份有限公司 | 一种数据批量转移系统及其方法 |
CN102419767A (zh) * | 2011-11-02 | 2012-04-18 | 攀钢集团西昌钢钒有限公司 | 热轧过程控制与制造执行管理的数据交换方法 |
CN102609479A (zh) * | 2012-01-20 | 2012-07-25 | 北京神州数码思特奇信息技术股份有限公司 | 一种内存数据库节点复制方法 |
CN102609479B (zh) * | 2012-01-20 | 2015-11-25 | 北京思特奇信息技术股份有限公司 | 一种内存数据库节点复制方法 |
CN102663547A (zh) * | 2012-03-28 | 2012-09-12 | 积成电子股份有限公司 | 电力调度主备系统全模型同步保持资源id不变化的方法 |
CN102663547B (zh) * | 2012-03-28 | 2015-09-02 | 积成电子股份有限公司 | 电力调度主备系统全模型同步保持资源id不变化的方法 |
CN106446133A (zh) * | 2016-09-19 | 2017-02-22 | 广东中标数据科技股份有限公司 | 同时对接两个数据库的方法及装置 |
CN107590277A (zh) * | 2017-09-28 | 2018-01-16 | 泰康保险集团股份有限公司 | 数据同步方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1477546A (zh) | 一种在两个数据库间进行相同数据表数据复制的方法 | |
US8996458B2 (en) | High volume, high speed adaptive data replication | |
CN104317843B (zh) | 一种数据同步etl系统 | |
US20190317944A1 (en) | Methods and apparatus for integrated management of structured data from various sources and having various formats | |
US6151608A (en) | Method and system for migrating data | |
CN101477486B (zh) | 一种基于扇区重组的文件备份恢复方法 | |
CN100492370C (zh) | 面向集成化企业模型的文档管理方法 | |
US20070083570A1 (en) | File system versioning using a log | |
CN108431810A (zh) | 代理数据库 | |
CN103605585B (zh) | 一种基于数据发现的智能备份方法 | |
CN106802905B (zh) | 一种同构plm系统的协同数据交换方法 | |
CN103631967A (zh) | 一种带自增量标识字段的数据表的处理方法及装置 | |
US20040167936A1 (en) | Replication system and program | |
CN111367994A (zh) | 数据库增量数据同步备份方法及系统 | |
CN109726192A (zh) | 基于大数据环境实现主数据模型版本与字段分开管理功能的系统及方法 | |
KR20190063835A (ko) | 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템 | |
CN115237852A (zh) | 基于mes系统的数据归档和还原的方法、系统、介质及装置 | |
CN113656384B (zh) | 数据处理方法、分布式数据库系统、电子设备及存储介质 | |
CN113961546B (zh) | 一种支持在线分析统计的实时查询库设计方法 | |
US7559048B1 (en) | System and method for managing objects between projects | |
CN104063294B (zh) | 一种Linux系统备份和恢复方法 | |
CN110399142B (zh) | 一种灰度与生产环境版本隔离的方法及系统 | |
Prasath et al. | A new approach for cloud data migration technique using talend ETL tool | |
CN114817171A (zh) | 一种埋点数据质量治理方法 | |
CN102044005A (zh) | 图书馆管理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |