科技行者

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

知识库

知识库 安全导航

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

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

  • 扫一扫
    分享文章到微信

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

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

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

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

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

全更新和差别更新拷贝

应用程序通过全更新或差别更新拷贝从源表拷贝数据到目标表中。

-在只进行全更新拷贝时,应用程序执行一下任务:

1.删除目标表中的所有行

2.从源表中读取所有行

3.拷贝这些行到目标表中

-在进行差别更新拷贝时,应用程序只拷贝更改的数据到目标表中。

冲突检测级别

冲突检测仅适用于“任何地方的更新(update-anywhere)”复制配置。它是在同一个复制周期,源和目标表中的同一行被更新的检测程序。对于标准冲突检测,应用程序在那些已经捕捉到CD表中的行中查找冲突。对于增强的冲突检测,应用程序锁住所有目标表,因此确保了在检查冲突时所有更改都被考虑到。

预订集和预订集成员

在开始从复制源复制数据前,你必须先将复制源和复制目标相关联起来,复制源所发生变化将被复制到复制目标中。我们使用预订集和预订集成员来定义这种信息。我们定义的这些信息将存储在各种复制控制表中。

一个预订集包含一个复制预订的属性。当你创建一个预订集时,要定义下面的属性:

-预订名

-源服务器和目标服务器

-应用限定符

-什么时候开始复制,复制频率,是否使用基于时间或基于事件或者基于两者的复制频率

-如果你有大量的更改,是否将数据分块提交

预订集中对每一张目标表或视图,必须有一个预订集成员。当你创建一个预订集成员,要定义以下属性:

-源表或视图、目标表或视图

-目标表或视图的结构

-要复制的列(子查询列)

-要复制的行(用SQL谓词WHERE限定过滤条件)

预订集确保所有预订集成员在复制期间是相同的:更改要么被应用于所有的目标,要么不被应用于所有的目标。在一个预订集中的所有预订成员的更改数据通过单一的一个事务复制到指定的目标表中。因为在一个预订集中的目标表是在一个事务中处理的,预订集使性能最优化。预订集也保持着参照一致性。

一个预订集被一个应用程序使用,然而,每个应用程序可以通过相同的应用限定符处理多个预订集。

应用限定符

应用限定符将一个应用程序和一个或多个预订集关联起来。当你定义一个预订集时,指定一个名称(区分大小写)作为应用限定符。

通过使用多个应用限定符,你可以只使用一个用户ID运行多个应用程序实例。例如:假设你想从两个源数据库复制数据到你计算机上的目标表。源表A中的数据使用“全更新拷贝”复制到目标表A,源表B中的数据使用“差别更新拷贝”复制到目标表B中。你定义了两个预订集(一个对应表A,一个对应表B),而且你使用各自的应用限定符以允许应用程序的两个实例在不同的时间拷贝数据。你也可以将两个预订集用同一个应用限定符定义,用同一个应用程序实例拷贝数据。

数据操作

也许你想只复制源表中的子集,可以使用简单的视图来重构从源表到目标表的数据,或者使用复杂的连接或联合。

源表的子集

你可以复制源表中的某些列或某些行,而不是复制整个表。

对于目标的连接和联合

你可以创建和维护包含由多张已存在的源表连接或联合成的内容的目标表。

你可以使用下面的连接类型:

-跨越一个或多个定义的复制源的简单内部连接,可能和其它的复制源的其它表或视图组合。

你可以通过下面的方法采用连接和联合来操作数据:

-从单一的DB2源服务器上连接表(通过定义一张由某些表连接成的DB2视图)

-从一个源服务器上联合的表(通过在一个预订集中使用包含相同目标表的多个预订集成员)

-从多个源服务器的联合,有时称之为多点联合(通过创建在多个预订集中的多个预订集成员)目标表

当你定义一个预订集成员时,你必须指定你所使用目标表的类型。有下面几种表类型可以用:

-用户拷贝表

-时间点表

-聚集表

-CCD表

-副本或行副本表

-用户表

下面介绍一下这些目标表类型的特点:

用户拷贝表

这些表是复制源的只读拷贝,不带有附加的复制控制列,就像普通的源表。它们是目标表最普通的类型。

时间点表

这些表是复制源的只读拷贝,附带有一时间戳列。时间戳列初始为空。当复制更改时,该列被赋予相应值以指示更新的时间。当你想跟踪更改的时间时,可以使用这种类型的表。

聚集表

这些是只读的表,使用SQL列函数(如SUM、AVG)来计算源表全部或最近发生更改的数据的摘要。行会随时间追加到聚集表。

基础聚集表汇总一张源表的内容。用基础聚集表来定期地跟踪源表状态。例如,假设你想知道你每个月的顾客平均数。如果你的源表中一个顾客对应一行,你每月将你源表中的行数取平均,而后将平均值存储到一张基础聚集表中。

基础聚集表没有跟踪更改信息。例如,假设你一月份平均有500个顾客,二月份也有500个顾客。然而,在二月份,你失去两个现有的客户,同时新增两个新客户。基础数据表显示这两个月平均顾客数是一样的,但它没有反映出二月份的变化。如果你想跟踪变化信息,可以使用更改聚集表。

更改聚集表使用控制表中的更改数据,而不使用源表中的内容。使用更改聚集表来跟踪随时间发生的更改(UPDATE、INSERT、DELETE操作)。例如,假设你想知道每个月你增加多少新客户(INSERTS)失去多少现有客户(DELETES)。你将按月统计你源表中行所发生的更改,将统计结果存储在更改聚集表中。

CCD表

涉及非IBM数据库,本文不予讨论。

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

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

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