【问题标题】:IBM DB2 and IBM IMS Change Data Capture CapabilitiesIBM DB2 和 IBM IMS 变更数据捕获功能
【发布时间】:2018-04-02 12:42:41
【问题描述】:

我想了解启用 CDC 的 IBM IMS 段和 IBM DB2 表源是否能够提供快照更改前后的值(如触发器中的 Oracle .OLD 和 .NEW 值),以便两者都可以用于进一步处理。

注意:

  1. 我们应该通过 Informatica PowerExchange 检索这些值并处理和推送到目标。
  2. 到目前为止,我们需要知道是否能够从 IBM DB2 和 IBM IMS 检索快照之前和之后的值(如 Oracle 触发器中的 .OLD 和 .NEW - 不是完全类似的示例,但刚刚提到作为一个例子来理解)

非常感谢任何帮助,谢谢。

【问题讨论】:

  • 我了解到以下内容:数据库管理系统日志更改。根据操作(插入/更新/删除),它们会记录记录或行的“前映像”和/或“后映像”。对于插入,只有记录或行的“后映像”,因为插入“之前”没有任何内容。对于删除,只有记录或行的“前映像”,因为删除“后”没有任何内容。对于更新,有“前映像”和“后映像”。这是否适用于 IBM IMS Hierarchal DB 和 IBM DB2 RDBMS 是我现在的问题?
  • 是的,sql 看起来就像引用 old as O new as N.
  • 您能说得详细一点吗?在如何获得这些值方面?可能是对 IMS 和 DB2 的每个查询的一个示例会有所帮助。谢谢。
  • 完成。请参阅下面的触发器引用旧的和新的。

标签: db2 cdc informatica-powerexchange ims-db


【解决方案1】:

我认为 CDC 不会在其从 DBMS 日志数据编译的更改消息中捕获之前的数据。它的主要目的是发出将数据从一个数据库复制到另一个数据库所需的最少命令数。如果您想保留数据的状态以便查询它,您需要在处理更改消息之前拍摄副本数据库的快照。

对于 Db2,使用 Db2 10 中添加的 temporal tables 功能可能更容易,因为它允许您定义哪些更改应该驱动快照。然后,您可以使用时态 SQL 查询访问时态数据。

SELECT … FROM…period specification

【讨论】:

  • “它从 DBMS 日志数据编译” - 以下 URL 指定可以使用之前和之后的数据图像:network.informatica.com/thread/10271,但我尚未与我们的 DBA 确认。
【解决方案2】:

具有旧引用和新引用的示例触发器...

CREATE TRIGGER danny117                                      
        NO CASCADE BEFORE Update ON mylib.myfile  
      REFERENCING NEW AS N old as O                        

      FOR EACH ROW                                         
-- don't let the claim change and force upper case         
--just do something automatically on update blah... 
      BEGIN ATOMIC                                         
         SET N.claim = ucase(O.claim);                     
      END           

【讨论】:

  • 感谢您提供此信息。但是,我的具体疑问是了解在启用 CDC 的 IBM DB2 表和 IBM IMS 段上的数据库级别上是否可以使用更改前和更改后的数据。实际上不是使用触发器,而是在表/IMS 段级别数据捕获,以获取这些表/段中的任何数据更改。似乎这个 URL 暗示了一些想法(URL:network.informatica.com/thread/10271),但是,我还没有与我们的 DBA 确认相同的想法。谢谢。
【解决方案3】:

w.r.t PowerExchange 9.1.0 和 9.6:

在快照数据无法通过 powerexchange for DB2 数据库处理之前。最近我从事一个迁移项目,我认为就像使用 SCN 编号的 Oracle CDC 一样,db2 应该有一些东西可以从任何需要的点启动记录器。但令我惊讶的是,Inforamtica 全球支持部门确认之前 PowerExchange 无法捕获快照数据。 他们谈论物化和非物化目标,当时我不知道,后来我发现他们的意思是导出和导入历史数据。

即使您有启用 CDC 的表,也无法从 PWX 捕获快照之前的数据。

DB2 从 DB2 日志中读取捕获数据,这些数据具有操作标记,例如 U/I/D,足以让 PowerExchange 继续进行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2021-12-01
    • 1970-01-01
    • 2019-02-14
    • 2013-10-11
    相关资源
    最近更新 更多