Oracle GoldenGate: 使用宏
一个宏函数库是宏的集合,宏可以是一个库文件中包含多个宏的定义,或多个库文件,包括不同的宏定义。建议将库文件存放在OGG的dirmac目录下,同时,库文件使用.mac为后缀。这样可以在引用时方便的识别。
下面是一个宏的示例,所有内容存放在一个库文件中:“$OGG_BASE/dirmac/macrolib.mac”.
MACRO #dbconnect
BEGIN
userid gguser, password AACAAAAAAAAAAAHAAIFBOIYAMCGIMARE, encryptkey default
END;
MACRO #bpsettings
BEGIN
STATOPTIONS RESETREPORTSTATS
-- Generate a report every day at 1 minute after midnight.
-- This report will contain the number of operations, by operation
-- type, performed on each table.
REPORT AT 00:01
REPORTROLLOVER AT 00:01
REPORTCOUNT EVERY 60 SECONDS, RATE
-- End of "best practices" section
END;
MACRO #funcsmap
PARAMS (#src_table, #target_table)
BEGIN
MAP #src_table, TARGET #target_table,
colmap (usedefaults,
orders_trans_ts = @GETENV ("GGHEADER", "COMMITTIMESTAMP"),
trans_rec_loc8tr = @STRCAT (@GETENV ("RECORD", "FILESEQNO"),
@GETENV ("RECORD", "FILERBA")),
extract_lag_ms = @TOKEN ("TKN-EXTLAG-MSEC"),
replicat_lag_ms = @GETENV ("LAG", "MSEC"),
src_db_name = @TOKEN ("TKN-SRC-DBNAME"),
src_db_version = @TOKEN ("TKN-SRC-DBVERSION"),
src_txn_csn = @TOKEN ("TKN-TXN-CSN")
);
END;
所有的宏使用关键“Macro”关键字开始定义,后面是宏的名称,以“#name”定义,宏的内容由“begin...end;”关键字包含,上面的三个宏定义分别是#dbconnect, #bpsettings, 和#funcsmap。其中
#dbconnect宏定义了一个DB连接的语句,使用默认的key进行密码加密;
#bpsettings宏定义了OGG中配置时的一些最佳建议,比如按天或按小时报告复制情况;
#funcsmap宏定义了一个map映射,要注意的是它要求带两个参数来使用;
下面是该宏在一个replicat端的使用:
nolist
include ./dirmac/macrolib.mac
list
replicat rfuncb
#dbconnect ()
#bpsettings ()
sourcedefs ./dirdef/mydefs.defs
discardfile ./dirrpt/rfuncb.dsc, purge
#funcsmap (amer.orders, euro.funcs_test)
当rfuncb投递进程启动时,include语句将加载库文件:./dirmac/macrolib.mac。参数nolist的意思是告诉投递进程不要把后面的执行情况写入到日志文件中,而list参数则是要求后续的执行语句都要写日志。
如果本参数文件中没有list语句,则整个投递进程将不会有任何日志输出到文件中。
当投递进程读取这个replicat参数文件时,它会将引用的宏替换为库文件中的语句定义,因此“#dbconnect ()”,“#bpsettings ()” 和 “#funcsmap (amer.orders, euro.funcs_test)”都会被替换为相应的语句。
“#funcsmap”宏使用了两个参数,分别代表源表和目标表。PARAMS关键字是告诉使用人员,这个宏需要有参数才能运行。针对参数的使用,有以下几点注意事项:
- 参数名不区分大小写;
- 参数名中不能使用引号;
- 参数在宏定义中不是必须的;
- 一个宏最多可以有99个参数,所有参数的长度不能超过9999字节;
- 所有参数都必须在PARAMS语句中定义,当调用宏时,所有参数都必须赋值。
小结
OGG宏在灵活运用和配置OGG参数时是个不错的技巧,特别是针对多个配置文件和复杂环境时,可以在一个文件中定义常用的一组操作,然后在所有环境中使用,降低运维的复杂性。
Oracle GoldenGate: 使用宏的更多相关文章
- 76 道 Oracle Goldengate 面试问题
基础 12c新特性 性能 Troubleshoot 其它 1. Oracle Goldengate 支持部署到哪些拓扑? GoldenGate supports the following topol ...
- Streaming data from Oracle using Oracle GoldenGate and Kafka Connect
This is a guest blog from Robin Moffatt. Robin Moffatt is Head of R&D (Europe) at Rittman Mead, ...
- Oracle Goldengate REPLICAT启动时报正在运行解决办法
stop replicate时报ERROR: opening port for REPLICAT MYREP (TCP/IP error: Connection refused). start rep ...
- Oracle GoldenGate 12c实时捕获SQL Server数据
在Oracle GoldenGate 12c中,对一些最新的数据库提供了支持,比如SQL Server 2012/2014,当然12c也支持sql server 2008.主要新增特性有: 捕获进程可 ...
- Oracle GoldenGate 12c (12.1.2.0.1) for IBM DB2 iSeries
OGG 12.1.2.0.1 for iSeries 在2014.2.15发布,主要新增如下功能: 本地交付(Native Delivery Replicat):新功能允许用户在IBM i服务器上安装 ...
- Oracle GoldenGate 11.2 OGG-01168(转)
为客户部署的Oracle GoldenGate在测试阶段出现如下的错误: 2012-04-24 10:45:20 ERROR OGG-01168 Oracle GoldenGate Deliv ...
- 使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务
使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务 作者:Nikolay Manchev 分步构建一个跨这些平台的 ...
- [转]Oracle GoldenGate安装配置
ref:http://blog.sina.com.cn/s/blog_5d29418d0101cvyx.html 1 简介 Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软 ...
- [置顶] Oracle GoldenGate 系列:使用 Oracle ASM API DBLOGREADER 时遇 ora-01031 错误
今天在自己新搭建的 Oracle ACFS 文件系统上测试 GoldenGate ,启动 extract 进程报如下错误: 2013-08-27 14:58:39 ERROR OGG-00446 ...
随机推荐
- 抓包工具Fidder设置(移动端抓包)
1.下载安装fiddler,下载链接:http://fiddler2.com/get-fiddler(我用的是免安装的fiddler2) 2.设置fiddler 打开Fiddler, Tool ...
- linux笔记:linux帮助命令,man,help,whatis,apropos
命令名称:man功能:获得帮助信息命令所在路径:/usr/bin/man用法:man 命令或配置文件其他:会调用less来查看该命令或配置文件的帮助信息. 命令名称:whatis功能:获得命令的简短介 ...
- 完美解决Informix的中文乱码问题
完美解决Informix的中文乱码问题 Informix是IBM旗下的一款数据库,要不是这个项目需要,估计这辈子我都不知道居然还有这么一款数据库.想来公司的项目遍布全国各地,各种部署环境各种应用场景 ...
- EasyDropDown – 很棒的下拉菜单 含精美主题
EasyDropDown 是一个 jQuery 插件,你可以毫不费力地将简陋的 Select 元素设置为可定制风格的下拉菜单,用于表单或者一般的导航.和著名的下拉插件 Chosen 很像,但是具有自己 ...
- 《Java程序设计》第六周学习总结
20145224 <Java程序设计>第六周学习总结 教材学习内容总结 第十章输入和输出 10.1.1 ·若要将数据从来源中取出,可以使用输入串流:若要将数据写入目的地,可以使用输出串流. ...
- (10)odoo控制器操作
-----------------更新时间11:17 2016-09-18 星期日 完善讲解17:44 2016-02-17 星期三-----------------* 控制器Controlle ...
- notepad++之TextFX插件
一.安装 插件→Plugin Manager→Show Plugin Manager,Availble→选中TextFX→install 二.使用 1.去除重复行 TextFX—>TextFX ...
- IO流 总结三
编码:字符串变成字节数组. 解码:字节数组变成字符串 String --> byte[]; str.getBytes(); byte --> String: new String(byt ...
- Testin
http://www.testin.cn/ http://news.ccidnet.com/art/66/20150416/5815927_1.html 百度百科上面的 Testin是全球最大的移 ...
- AP聚类算法(Affinity propagation Clustering Algorithm )
AP聚类算法是基于数据点间的"信息传递"的一种聚类算法.与k-均值算法或k中心点算法不同,AP算法不需要在运行算法之前确定聚类的个数.AP算法寻找的"examplars& ...