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 ...
随机推荐
- shell中for循环
shell中for循环总结 最常用的就是遍历操作某一类文件,比如批量建索引. for i in `ls` do samtools faidx $i done 注意:for末尾不需要冒号(:),循环的代 ...
- Falcon Genome Assembly Tool Kit Manual
Falcon Falcon: a set of tools for fast aligning long reads for consensus and assembly The Falcon too ...
- Android GC 那点事
版权声明:本文由陈昱全原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/170 来源:腾云阁 https://www.qclo ...
- String的那一大堆事儿--1
perfTimeStr = perfTimeStr.replace(perfTimeStr.substring(0,4), "____"); perfTimeStr = perfT ...
- jmeter 建立一个监控测试计划
监控 压力测试和系统管理是有用的. 使用压力 测试,服务器性能监控提供了额外的信息. 这也使得它更容易看到服务器性能之间的关系 在客户端和响应时间. 作为一个系统管理工具, 监控提供了一种简单的方法来 ...
- robot API笔记4
robot.htmldata包 包编写HTML格式的输出文件. 这个包被认为是稳定的但不是公共API的一部分. robot.htmldata.htmlfilewriter module classro ...
- CentOS怎样查看系统信息
一.查看系统版本和核心版本 1 登陆CentOS,启动终端. 2 登陆root帐户,输入 cat /etc/redhat-release,即可显示系统版本. 3 输入 uname -r ,可以查询 ...
- Compound Interest Calculator3.0续
1.你写的程序能让客户随意操作吗?误输入数据.不小心做了非常规的操作程序是什么反应? 2.如果向银行贷款10万元,年利率6.5%,期限为10年,那么每月等额本息还款多少?(算复利条件下等额还款金额) ...
- cookie、sessionStorage、localStorage区别
相同:不管sessionStorage localStorage 还是 cookie 都是存储用户数据的. 不同: 1.cookie的存储空间小, cookie的数据是会通过http请求带到服务器的( ...
- linq分页扩展(转)
原文地址:http://www.cnblogs.com/RainbowInTheSky/p/4590508.html public static List<T> ToPagedList&l ...