【问题标题】:How to skip a transaction in replicate(Target system) in Goldengate oracle如何在 Goldengate oracle 中跳过复制(目标系统)中的事务
【发布时间】:2015-09-30 02:19:26
【问题描述】:

要求:

源表包含 5 列。我们在目标上复制 5 列中的 3 列。 SEQ_ID 是目标上的附加列。

当对不在目标表中的列执行更新操作时,增加SEQ_ID。 SEQ_ID 只有在对目标上存在的列执行更新时才会增加。

在要复制的选定列(ID、AGE、COL1)上启用无条件补充表级别日志记录:

来源: 表名:Test1(ID,AGE,COL1,COL2,COL3)

目标: 表名:Test1(ID,AGE,COL1,SEQ_ID)

我们创建了一个序列以在发生插入或更新时增加 SEQ_ID。

场景: 如果在这些列(ID、AGE、COL1)的源表上发生插入或更新,则增加 SEQ_ID, 如果更新发生在其他列(COL2,COL3) SEQ_ID 也会增加。

我们的要求是当其他列(COL2,COL3) 发生更新时,SEQ_ID 不应该增加。 我想跳过列(COL2,COL3) 上发生的更新事务。

来源: 初级提取 test_e1 提取测试_e1 用户 ID DBTUAT_GG,密码​​ dbt_1234 EXTTRAIL /DB_TRACK_GG/GGS/dirdat/dd 获取更新之前 --忽略更新 --忽略删除 无压缩更新 TABLE HARI.TEST1,COLS(ID,AGE,COL1),FILTER (ON UPDATE,IGNORE UPDATE,@STREQ(before.AGE, AGE) = 0);

数据泵测试_p1: 提取测试_P1 用户 ID DBTUAT_GG,密码​​ dbt_1234 RMTHOST 10.24.187.235, MGRPORT 7809,
RMTTRAIL /Trail_files/tt --直通 表 DBTUAT_GG.TEST1;

目标: 目标 Repcat 文件: 编辑参数 test_r

复制测试_R 用户名 GGPROD,密码 GGPROD_123 SOURCEDEFS ./dirsql/def32.sql 处理碰撞 忽略删除 插入更新 映射 HARI.TEST1、目标 HARI.TEST1 和 SQLEXEC (ID test_num,QUERY "select GGPROD.test_seq.NEXTVAL test_val from dual", NOPARAMS), & COLMAP(USEDEFAULTS,SEQ_ID=test_num.test_val);

请提出任何可能的解决方案。

【问题讨论】:

    标签: oracle-golden-gate


    【解决方案1】:

    第一个注意事项:您不需要在 Pump PRM 中使用 USERID 和 PASSWORD。 Pump 进程未连接到任何数据库。

    其实你已经实现了你的目标。您仅在修改 AGE 时复制数据。提取 PRM 文件中有一个 FILTER 子句。 ID 列不应更改,因为这是 PK。唯一的问题是,如果复制删除,您将增加 SEQ_ID。

    类似的东西应该可以工作:

    ALLOWDUPTARGETMAP
    
    IGNOREDELETES
    -- just inserts and updates that change COL1
    MAP HARI.TEST1, TARGET HARI.TEST1, & 
      SQLEXEC (ID test_num,QUERY "select GGPROD.test_seq.NEXTVAL test_val from dual", NOPARAMS), & 
      COLMAP(USEDEFAULTS, SEQ_ID = test_num.test_val);
    
    -- just replicate the delete operations
    GETDELETES
    IGNOREINSERTS
    IGNOREUPDATES
    MAP HARI.TEST1, TARGET HARI.TEST1;
    GETINSERTS
    GETUPDATES
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多