科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道DB2数据库的数据复制技术简单概述

DB2数据库的数据复制技术简单概述

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

数据复制就是通过将源数据库中指定的数据复制到目标数据库中,以保持源数据库与目标数据库中指定数据的同步(一致)。

作者:赛迪网 来源:赛迪网 2007年9月5日

关键字: 数据复制 数据库 DB2

  • 评论
  • 分享微博
  • 分享邮件
 

基于日志的通讯

捕捉程序使用部分控制表去记录发生在源数据库上的更改,而应用程序使用这些控制表中的值去检测什么需要拷贝到目标库中。

重要:如果应用程序没有通知捕捉程序,捕捉程序不会捕捉任何更改信息。同样,除非你定义一个复制源并将它和预订集相关联,否则应用程序不会通知捕捉程序开始捕捉更改。

下面讲解在典型的复制环境下,应用程序和捕捉程序如何通讯以保证数据的一致性:

从源数据库捕捉数据

1.捕捉程序通过读控制表ASN.IBMSNAP_REGISTER来判断哪些复制源需要开始捕捉更改。如果在捕捉程序运行期间,用户定义了新的复制源,那么你必须重新初始化或重启捕捉程序,它才会开始生效。

2.捕捉程序通过监控DB2的日志去检测那些定义为复制源的源表所更改的记录。

3.每一复制源都有一张CD表。当捕捉程序在DB2日志中发现有一行数据发生更改时,它会在CD表中加入一行相应的数据,以记录发生的更改(如果updates被定义为DELETE和INSERT时,则加入两行)。

4.捕捉程序将提交的事务信息存储在控制表ASN.IBMSNAP_UOW中。该控制表中的行标志着在源服务器上发生的已提交的事务。对于基于日志的捕捉程序,每一个DB2源服务器都存在一张控制表ASN.IBMSNAP_UOW。

5.捕捉程序会更新控制表ASN.IBMSNAP_REGISTER来记录每一个复制源有多少已提交的数据被捕捉。

将数据应用于目标数据库

6.对于所有的预订集,应用程序首先通过将源表的所有数据拷贝到目标表中,以达到与复制源的同步。这个步骤称之为全更新拷贝。在进行全更新拷贝之后,捕捉程序开始捕捉数据源发生的更改。

7.如果任何预订集准备复制,应用程序通过检查控制表ASN.IBMSNAP_REGISTER来判断是否有发生变化以需要复制。

8.应用程序通过更新修剪控制表来同步存储在CD表中相关源表的更改

9.应用程序从CD表和控制表ASN.IBMSNAP_UOW的连接中拷贝变化的数据到目标表中。通过连接这两个控制表,应用程序确保只拷贝在数据源上已提交的变化。

修剪表

10.应用程序用一个指向拷贝变化到目标数据库的值来更新修剪控制表ASN.IBMSNAP_PRUNCNTL。

11.当应用程序修剪CD表和UOW控制表时,它先确定哪些更改已经应用,然后将其从那两个控制表中删除。

DB2数据复制概念

这部分介绍一些DB2数据复制的重要概念。你应该阅读整个部分以获得一个整体的概念。

复制源

一个复制源其实就是一张你想从中拷贝数据的用户表或视图。在你可以复制数据之前,你必须先定义一个复制源用来描述更改捕捉机制所使用的信息。当你定义一个复制源时,你必须指定你想复制的列,还有决定你想把更新当做UPDATE操作处理还是DELETE和INSERT操作。另外,你必须决定:

-是否想对一列捕捉前映象

-你是否想使用更改捕捉(差别更新拷贝)还是不使用更改捕捉(全更新拷贝)

-对于任何地方的更新复制(复制源有读/写目标表)想使用什么级别的冲突检测

后映象列和前映象列

一列后映象列包含源表中一列数据列被更新后的那列数据。一列前映象列包含源表中一列数据列被更新前的那列数据。当你定义一个复制源的时候,你可以选择只捕捉后映象(默认)或者后映象和前映象一起捕捉。这取决于你打算使用这些数据的方法和你正在使用的表的类型。例如:表DEPARTMENT中有一列DEPTNO,若在定义复制源时指定该列捕捉后映象和前映象,该列有一行数据为’A00’,若使用UPDATE语句将’A00’更新为’A01’,则在其相应的CD表中同时记录了更新前后的值:

红色部分为用户指定的,要捕捉更改的列(后映象列),蓝色部分为前映象列,存放对应列被更新前的值。

CREATE  TABLE  DEPARTMENT (
DEPTNO …,      ‘A00’
DEPTNAME …,
MGRNO …,
ADMRDEPT …,
LOCATION …)

源表

CREATE  TABLE  CD20030805296530(
IBMSNAP_UOWID …,
IBMSNAP_INTENTSEQ…,
IBMSNAP_OPERATION …,
XDEPTNO…,      ‘A00’
DEPTNO…,       ‘A01’
XDEPTNAME …,
DEPTNAME …)

CD表

在需要审计或回滚能力的应用系统中,前映象列是非常有用的。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章