热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OGG中token的使用

OGG版本:19.1RDBMS:19.15测试目的:源端表:bb.t2目标端表:zbb.t4,zbb.t5

OGG版本:19.1

RDBMS:19.15 

测试目的:
源端表:bb.t2 
目标端表: zbb.t4,zbb.t5 .  t4和t5结构不同。t5中相对t4中多余的列为token获取的环境变量
同时将bb.t2同步到zbb.t4和zbb.t5 .

关于token和@getenv函数,可以参考官方文档 Oracle® GoldenGate Windows and UNIX Reference Guide 


源端表:

BB@orcl>desc t2Name Null? Type----------------------------------------- -------- ----------------------------ID NUMBERNAME VARCHAR2(10)BB@orcl>

目标端表

conn zbb/oracle
create table t5 (
no number,
firstname varchar2(10), ## token名 = token值
host varchar2(40), -- TKN-HOST = @GETENV ('GGENVIRONMENT", "HOSTNAME'),
gg_group varchar2(40), -- TKN-GRP = @GETENV ('GGENVIRONMENT", "GROUPNAME'),
osuser varchar2(40), -- TKN-USER = @GETENV ('GGENVIRONMENT", "OSUSERNAME'),
domain varchar2(40), -- TKN-DOMAIN = @GETENV ('GGENVIRONMENT", "DOMAINNAME'),
UPDATETIME date, -- updatetime= @TOKEN ('GGHEADER','COMMITTIMESTAMP'),
tablename varchar2(40), -- TKN-TBNAME = @GETENV ('GGHEADER”, “TABLENAME'),
optype varchar2(40) -- TKN-OPT = @GETENV ('GGHEADER”, “OPTYPE'),
)

源端的ext2 ,源端ext进程,获取的环境变量较多,虽然针对t4表,用不了这么多,但是针对t5表,可以用到这些。不影响t2和t4,t2和t5的同时同步

table bb.t2 ,TOKENS & ## 一行写不下,可以使用符号&换行
(TKN-HOST = @GETENV ('GGENVIRONMENT', 'HOSTNAME'), &
TKN-GRP = @GETENV ('GGENVIRONMENT', 'GROUPNAME'), &
TKN-USER = @GETENV ('GGENVIRONMENT', 'OSUSERNAME'),&
TKN-DOMAIN = @GETENV ('GGENVIRONMENT', 'DOMAINNAME'),&
updatetime= @GETENV ('GGHEADER','COMMITTIMESTAMP'),&
TKN-TBNAME = @GETENV ('GGHEADER', 'TABLENAME'),&
TKN-OPT = @GETENV ('GGHEADER', 'OPTYPE'));

源端的pump2进程

table bb.t2 ,TOKENS &
(TKN-HOST = @GETENV ('GGENVIRONMENT', 'HOSTNAME'), &
TKN-GRP = @GETENV ('GGENVIRONMENT', 'GROUPNAME'), &
TKN-USER = @GETENV ('GGENVIRONMENT', 'OSUSERNAME'),&
TKN-DOMAIN = @GETENV ('GGENVIRONMENT', 'DOMAINNAME'),&
updatetime= @GETENV ('GGHEADER','COMMITTIMESTAMP'),&
TKN-TBNAME = @GETENV ('GGHEADER', 'TABLENAME'),&
TKN-OPT = @GETENV ('GGHEADER', 'OPTYPE'));

因为源端的表没有变化,所以不要再次生成defgen file,只需要在目标端rep2中添加map ,原来的对t4表的map,也存在 

map bb.t2,target zbb.t4, COLMAP (USEDEFAULTS,no=id,firstname=name ,updatetime= @TOKEN ('updatetime')),filter (id > 30); -- 仅仅复制id>30map bb.t2,target zbb.t5, COLMAP ( &
USEDEFAULTS, &
no=id, &
firstname=name , &
host = @token ('TKN-HOST'), &
gg_group = @token ('TKN-GRP'), &
osuser= @token ('TKN-USER'), &
domain = @token('TKN-DOMAIN'),&
updatetime= @TOKEN ('updatetime'), &
tablename= @TOKEN ('TKN-TBNAME'), &
optype= @TOKEN ('TKN-OPT'), &
);

同步成功,原来的T4,也可以同步。 T2同时同步到T4,T5  .

ZBB@test>select * from t4;NO FIRSTNAME UPDATETIME
---------- ---------- -------------------------41 p 2022-07-13 16:56:2142 ae 2022-07-13 17:10:3743 iwc 2022-07-13 17:13:2247 mmm ## 这里没有结果,是因为map t2到t4的,token中,token名称写错了 ,修改后就可以了。48 ccc 2022-07-14 15:24:1514 c 2022-07-11 14:32:2815 d 2022-07-11 14:34:2311 c 2022-07-09 19:14:2313 c 2022-07-09 19:28:2918 a 2022-07-13 15:37:4319 m 2022-07-13 15:41:25NO FIRSTNAME UPDATETIME
---------- ---------- -------------------------32 c 2022-07-13 16:01:1440 i 2022-07-13 16:04:1341 m 2022-07-13 16:53:059 a 2022-07-08 14:33:0310 aa 2022-07-08 17:13:0717 a 2022-07-13 11:24:5416 a 2022-07-13 10:35:1218 rows selected.ZBB@test>select * from t5; ## DOmain字段没有结果,这个字段仅仅针对Windows,官方文档上有说明 NO FIRSTNAME HOST GG_GROUP OSUSER DOMAIN UPDATETIME TABLENAME OPTYPE
---------- ---------- ---------------- ---------- ---------- ---------- ------------------------- ---------- ----------44 aa redhat762100 PUMP2 oracle BB.T2 INSERT45 mw redhat762100 PUMP2 oracle BB.T2 INSERT46 afdsa redhat762100 PUMP2 oracle 2022-07-14 15:14:32 BB.T2 INSERT47 mmm redhat762100 PUMP2 oracle 2022-07-14 15:22:35 BB.T2 INSERT48 ccc redhat762100 PUMP2 oracle 2022-07-14 15:24:15 BB.T2 INSERTZBB@test>

END 


推荐阅读
  • 数据类型和操作数据表2.1MySQL类型之整型2.2MySQL数据类型之浮点型2.3日期时间型DATE1支持时间:1000年1月1日~9999年12月31日DATETIME ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 本文详细介绍了在 Oracle 数据库中使用 MyBatis 实现增删改查操作的方法。针对查询操作,文章解释了如何通过创建字段映射来处理数据库字段风格与 Java 对象之间的差异,确保查询结果能够正确映射到持久层对象。此外,还探讨了插入、更新和删除操作的具体实现及其最佳实践,帮助开发者高效地管理和操作 Oracle 数据库中的数据。 ... [详细]
  • importpymysql#一、直接连接mysql数据库'''coonpymysql.connect(host'192.168.*.*',u ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 利用爬虫技术抓取数据,结合Fiddler与Postman在Chrome中的应用优化提交流程
    本文探讨了如何利用爬虫技术抓取目标网站的数据,并结合Fiddler和Postman工具在Chrome浏览器中的应用,优化数据提交流程。通过详细的抓包分析和模拟提交,有效提升了数据抓取的效率和准确性。此外,文章还介绍了如何使用这些工具进行调试和优化,为开发者提供了实用的操作指南。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 如何在PHP中获取数组中特定元素的索引位置
    在PHP中获取数组中特定元素的索引位置有多种方法。首先,可以使用 `array_search()` 函数,其语法为 `array_search(目标值, $array)`,该函数将返回匹配元素的第一个键名(即下标)。其次,也可以利用 `array_keys()` 函数,通过 `array_keys($array, 目标值)` 语法来获取所有匹配元素的键名列表。这两种方法都能有效解决数组元素定位的问题,具体选择取决于实际需求和性能考虑。 ... [详细]
  • 在《Linux高性能服务器编程》一书中,第3.2节深入探讨了TCP报头的结构与功能。TCP报头是每个TCP数据段中不可或缺的部分,它不仅包含了源端口和目的端口的信息,还负责管理TCP连接的状态和控制。本节内容详尽地解析了TCP报头的各项字段及其作用,为读者提供了深入理解TCP协议的基础。 ... [详细]
  • 本文全面解析了JavaScript中的DOM操作,并提供了详细的实践指南。DOM节点(Node)通常代表一个标签、文本或HTML属性,每个节点都具有一个nodeType属性,用于标识其类型。文章深入探讨了DOM节点的创建、查询、修改和删除等操作,结合实际案例,帮助读者更好地理解和掌握DOM编程技术。 ... [详细]
  • 在Java分层设计模式中,典型的三层架构(3-tier application)将业务应用细分为表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。这种分层结构不仅有助于提高代码的可维护性和可扩展性,还能有效分离关注点,使各层职责更加明确。通过合理的设计和实现,三层架构能够显著提升系统的整体性能和稳定性。 ... [详细]
author-avatar
hyc_erasme
新手上路、多多照顾
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有