解析DB2与非DB2数据库之间远程复制

时间:2007-02-12 17:02:54   来源:  作者:fenyuan  点击:次  出处:技术无忧
关键字:远程复制 数据库 SQL TCP/IP

包装器定义了一个负责本地数据库与远程数据库通信的库。包装器执行很多任务,比如:它可以连接到数据源,包装器应用了数据源的标准连接API。它还可以给数据源提交请求。联合数据库系统可以操作远程联合系统的表。远程表在本地联合数据库中虚拟存在,客户应用程序可以操作这些虚拟表,但是它们真正存在于远端数据库中。每个远程虚拟数据库,把联合数据库当作数据库客户端,他们只对数据库客户端的请求有回应。因此联合数据库需要下载各种远程数据库的客户端。

一个联合系统的构造,需要一个作为联合服务器的 DB2 实例,一个作为联合数据库数据库,一个或多个数据源,和可以存取数据库和数据源的客户(用户和应用)。如果要完成远程不同数据库之间的复制,还需要应用DB2的数据复制功能。

IBM DB2 复制(在一些平台上被称为数据传播)是一个从一个位置到另一个位置复制 DB2 和/或其他数据库厂商数据的强大的,灵活的工具。IBM的复制支持数据转换,数据连接和过滤数据。可以在不同的平台之间搬运数据,也可以把数据分散到不同的地点或从分散的地方把数据聚合到一个地方。可以在不同的系统之间交换数据。

IBM复制由四个主要部分组成:管理 (Administrator),Capture,Apply,警报监视器 (Alert Monitor)。

管理的部分主要通过复制中心的图形界面来实现。通过复制中心可以定义复制源,定义从数据源到目标数据的地图。它也用来管理和监控本地和远程的 Capture 和 Apply 进程。从图3中可以看出复制中心图形界面对其他几个部分的支持关系。

2982067f14662c40c3b26d45e8c88aa0.jpg


图3:复制中心的应用
在源数据服务器上运行的 Capture 程序可以获取 DB2 源数据表中的变化。DB2 的源数据服务器可以为 DB2 在 z/os, os/390 上的版本 6,7和8,也可以是 iseries 在 os/400 V5R2,或 DB2 在 Windows, Unix 系统中的版本 8。当定义数据源的时候会自动生成相应的触发器 (Triggers),可以用来捕获数据源的变化。要复制的数据可以在 Capture 进程中通过选择列来进行过滤。被捕获的更改信息首先存放到本地的源数据所在的数据库的表中并且当更改应用到目标数据中之后会自动删除。

当对源表进行改动时,DB2 把相关的记录写入日志。这些日志服务于数据库发现和复制。Capture 程序通过数据库自动连接并获取日志记录。每个源表都有相应的 CD (change data) 表来获取数据的变化。当定义一个复制数据源时,复制中心自动生成 CD 表。

对于 Apply 部分,捕获的改变通过 Apply 程序应用到目标表中。Apply 程序可以在任何服务器上运行并且必须对所用到的源服务器和目标服务器都有连通性。数据可以通过列,行进行过滤,可以进行合并(例如通过视图),也可以在 Apply 过程中通过 SQL 表达式进行传送。DB2 与其他相关的数据间进行复制的时候,必须通过联合数据库系统来进行昵称的创建。在本地机器上需要安装关系型包装器和非关系型包装器。对于本例中db2<->ORACLE之间的复制,需要安装关系型包装器。见图4。

8182d48ae45a234ea77a300e815e88c4.jpg


图4:进行远程复制关系图
报警监视器用来进行对Capture和Apply部分的错误监控。

技术 无忧 pc51.Net


文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

特别推荐