使用增量索引更新(它使用“DB2 复制”)来对昵称创建文本索引

在使用复制捕获表对昵称创建文本索引之前,必须执行下列步骤:

注意

下列步骤只是对该过程提供了概述,并不是一个示例。

  1. 使用所有服务器定义和包装器定义设置 DB2 联合数据库。
  2. 在远程服务器中设置复制控制表和 Capture 程序。这就是昵称的源表驻留的地方。请参阅《DB2 复制指南和参考版本 8》的第 2 章『对复制进行设置』。如果 DB2 不自动创建昵称,则必须使用下列表的一个模式名以在联合 DB2 数据库中创建昵称:

    在执行此步骤之后,复制控制表的昵称是作为 DB2 联合数据库上的一种“捕获控制模式”中的昵称提供的。此模式名对于 DB2TEXT CREATE INDEX 命令很重要。

  3. 将表注册为复制源。有关详细信息,请参阅《DB2 复制指南和参考版本 8》 中的第 3 章『将表和视图注册为复制源』。有关注册要对其创建索引的昵称的限制,请参阅第 *** 页。
  4. 如果在注册步骤中 DB2 未自动创建昵称,则在联合数据库中为复制捕获表创建昵称。复制捕获表可以是“更改数据”(CD)表,也可以是“一致更改数据”(CCD)表。此昵称是 DB2TEXT CREATE INDEX 命令的一个参数。

    注意,一定不能更改列名 IBMSNAP_OPERATION、IBMSNAP_COMMITSEQ、IBMSNAP_INTENTSEQ 和主键列的名称。

  5. 如果正在使用 DB2 复制源,则确保 Capture 程序正在运行。强烈建议不要对 Capture 程序使用冷启动。如果使用冷启动,则必须重新插入 APPLY_QUAL LIKE 'NSE%' 的 IBMSNAP_SIGNAL 表中的所有行。在以下 SQL 语句中,可以看到这是如何完成的:
    INSERT INTO <capture control schema>.IBMSNAP_SIGNAL
    SELECT CURRENT TIMESTAMP, 'CMD', 'CAPSTART', MAP_ID, 'P'
    FROM <capture control schema>.IBMSNAP_PRUNCNTL
    WHERE APPLY_QUAL LIKE 'NSE%';
  6. 可以使用以下示例来通过使用复制对昵称创建文本索引:
    DB2TEXT
    CREATE INDEX <indexname> FOR TEXT ON <nickname> (< text column>)
    REPLICATION CAPTURE TABLE <capture nickname>
    CONTROL TABLE SCHEMA <capture control schema>