暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

灵活配置Oracle GoldenGate(ogg):轻松实现不同场景数据同步需求

数据库驾驶舱 2024-04-02
552

Oracle GoldenGate(OGG)是一款强大的数据复制和同步工具,广泛应用于企业级数据库系统中。在实际应用中,数据同步场景多种多样,需要根据具体业务需求进行灵活配置,以确保数据的一致性和完整性。本文将介绍如何利用Oracle GoldenGate的灵活配置功能,轻松实现各种数据同步需求。

加密密码

    --添加秘钥
    add credentialstore
    alter credentialstore add user ogg@oggtest15 alias test15


    --参数文件使用别名登录
    USERIDALIAS test15 替代原有的USERID ogg, PASSWORD ogg


    --连接数据库
    dblogin useridalias test15

    抽取端配置

      --抽取部分字段
      TABLE TEST.AA ,COLS (ID,NAME,AGE);


      --只抽取满足条件的数据 只抽取DEPTNO=10
      TABLE scott.emp, FILTER (DEPTNO = 10);

      复制端配置

        --指定SCN 18181818开始复制
        map TEST.TAB1,target TEST2.TAB1,filter(@GETENV ('TRANSACTION', 'CSN') >18181818);


        --使用指定唯一键来同步(原有主键已做过数据处理),目标端使用unique_id唯一键来保证唯一性
        map dbtest.aa, KEYCOLS(unique_id), target dbtest.aa,COLMAP(USEDEFAULTS)


        --源端字段比目标端字段少(目标端多ID字段,也可以通过触发器实现,但有些情况下触发器不能成功),使用SQLEXEC实现
        MAP TEST.TAB1,TARGET TEST2.TAB1,SQLEXEC(ID LOOKUP20240402,QUERY 'SELECT TEST2.SEQ_ID.NEXTVAL ID FROM DUAL'),COLMAP(ID=LOOKUP20240402.ID,USEDEFAULTS);
        --ID 通过查询SQLEXEC(ID LOOKUP20240402,QUERY 'SELECT TEST2.SEQ_ID.NEXTVAL ID FROM DUAL'),获得值 LOOKUP20240402 需要对应 ID=LOOKUP20240402 (不要与配置文件内的变量重复 保证唯一)


        --字段名称不一致(源端字段:src_column 目标端:tgt_column)
        MAP src_schema.src_table, TARGET tgt_schema.tgt_table,COLMAP (USEDEFAULTS,tgt_column1 = src_column1,tgt_column2 = src_column2);


        --将delete转为insert或者update,(一般会忽略其他操作比如insert或者update)


        --同步到删除表
        IGNOREINSERTS
        IGNOREUPDATES
        INSERTDELETES
        MAP TEST.TAB1, TARGET TEST2.TAB1_DEL,colmap(USEDEFAULTS);


        --软删除,将删除字段标记为删除
        MAP src_schema.src_table, TARGET tgt_schema.tgt_table, FILTER (@GETENV("GGHEADER", "OPTYPE") = "DELETE"), COLMAP (USEDEFAULTS, is_deleted = 'Y', delete_time = @DATE("YYYY-MM-DD HH:NN:SS", @GETENV("GGHEADER", "COMMITTIMESTAMP")));


        --复制时,只复制部分值(截取13位)
        MAP TEST.TAB1, TARGET TEST.TAB2,COLMAP ( USEDEFAULTS,TGTCOL = @STREXT (SRCCOL, 1, 3)


        --复制时,源端字段合并为一个字段(SRCCOL1 SRCCOL2合并为TGTCOL)
        MAP TEST.TAB1, TARGET TEST.TAB2,COLMAP (USEDEFAULTS, TGTCOL = @STRCAT(SRCCOL1," ",SRCCOL2));

        总结:

        通过灵活配置Oracle GoldenGate,可以轻松应对各种复杂的数据同步需求,实现数据库之间的高效、可靠的数据传输和同步。合理利用OGG提供的功能和特性,可以为企业数据管理带来极大的便利和效益,提升数据处理的效率和质量。

        文章转载自数据库驾驶舱,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论