服务器 频道

在DB2 UDB中复制空间数据(中篇)

  创建订阅集合

  真正开始复制空间数据的第一个步骤是创建一个订阅集合(如果您还没有定义的话)。订阅集合通常是对若干张源表和目标表的映射进行分组。所谓映射是指定义从哪张源表将数据复制到哪张目标表。一个订阅集合中的所有映射会一起进行数据复制。您也可以定义若干个订阅集合,其中的每两个集合之间都是独立的。

  在此,我们创建一个空白的订阅集合。后续步骤中我们向这个集合里加入订阅成员。 图12显示了我们是如何定义一个名为 SPATIAL 的订阅集合的。capture server 名为 SPATIAL,这是源表所在的数据库,apply control server 名为 REPL,这是目标表所在的数据库。

  图 12. 创建一个新的订阅集合

 

  

  当然,您在创建订阅集合的时候就可以向其中加入部分或全部的成员。这可以通过“Create Subscription Set”对话框中的“Source-to-Target Mapping”面板来实现。我们现在不马上定义成员,而是用一个单独的步骤实现。用这种方法更容易实现反复增加新成员。

  有关创建订阅集合的更多细节,请参考 DB2 Replication User''s Guide and Reference 手册。

  增加空间数据的订阅成员

  设置好源表和目标表之后,我们现在就可以定义订阅成员了。这是空间数据复制过程中需要完成的最后一步管理任务。订阅成员的定义是小事一桩,我们用 DB2 Replication Center 来解释其中的每个操作步骤。

  首先,打开订阅集合名的上下文菜单,选中其中的“Add Member...”选项,以打开“Add Member to Subscription Set”窗口。在“Memeber Information”面板上,加入已经注册的源视图 STREETS_REPL_VIEW。DB2 Replication Center 会为新的目标表产生一个名称。您必须修改这个名称,使之指向您已经根据实际的目标表创建好的视图,如 图 13所示。

  图 13. 向订阅集合中增加成员

 

  您还需要修正更多的细节信息,因此请选择 Details...按钮,在打开的窗口中接着进行处理。我们当然想将 WKB 字段的内容复制过来了。所以我们要把这个字段加入到已选择字段清单中,如 图 14 所示。 图 14中的第二幅图片还显示出已经选择的字段 WKB 是如何映射到同样名为 WKB 的目标字段上的。您可以从左边的蓝色按钮上拉出一个箭头,放在右边的红色按钮上,这样就在两项之间建立起关系来。

  图 14. 将 WKB 字段加入到已选字段列表中

 

  下一步中会指明 ID 字段上存在索引,这更大程度上是出于提示信息的目的。我们知道这样的索引是作为底层基本表 TG_STREETS 的主键的一部分出现的。要完成成员属性的设置就必须进行这一步。 图15显示了其中的细节信息。

  图 15. 为目标表定义索引

 

  我们不想额外再定义记录过滤器,因此设置过程到此结束,点击“Member Properties”窗口和“Add Members to Subscription Sets”中的 OK按钮。所生成的语句分别在源数据库和目标数据库上执行,这样,成员的定义就完成了。

  启动 Capture 和 Apply 控制服务之后,所有的空间数据现在都可以正确复制了。 清单11中用一些小例子进行了验证。请注意,用常规文本表示的 SQL 语句集必须在源数据库中的源表 STREETS 上执行。以 粗体表示的查询语句从目标数据库的目标表 TG_STREETS 中获取数据。同时,在源数据库上的操作和数据向目标表传播之间存在延时。延时的长短取决于您在订阅集合中定义的时间表。语句在目标数据库上执行之后数据才复制成功,您必须等到这个时候才能看到如下所示的结果。

0
相关文章