Oracle GoldenGate(OGG)是一款强大的数据复制和同步工具,广泛应用于企业级数据库系统中。在实际应用中,数据同步场景多种多样,需要根据具体业务需求进行灵活配置,以确保数据的一致性和完整性。本文将介绍如何利用Oracle GoldenGate的灵活配置功能,轻松实现各种数据同步需求。
加密密码
--添加秘钥add credentialstorealter credentialstore add user ogg@oggtest15 alias test15--参数文件使用别名登录USERIDALIAS test15 替代原有的USERID ogg, PASSWORD ogg--连接数据库dblogin useridalias test15
抽取端配置
--抽取部分字段TABLE TEST.AA ,COLS (ID,NAME,AGE);--只抽取满足条件的数据 只抽取DEPTNO=10TABLE 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)--同步到删除表IGNOREINSERTSIGNOREUPDATESINSERTDELETESMAP 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")));--复制时,只复制部分值(截取1到3位)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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




