OGG配置文件中参数化的运用

    在日常的运维中,运行期间OGG的配置一般不会动态调整。如果要使用批量配置,一般使用obey。如果针对同一个配置文件,每次运行时,需要调整某些属性值,如队列文件名或进程名,则可以使用参数化配置。意思是只需要创建一份配置文件,但可以在每次运行时从操作系统的环境信息中读取变量的值,从而在OGG开始运行后产生不同的执行情况。
如下:

--ex1.prm
extract ex1
setenv(oracle_sid='?ORA_SID')
userid ogg, password ogg
exttrail ./dirdat/?TRAIL_FILE
table schema.tb1;

    在上面的配置文件中,有指定两个变量,一个是ORA_SID,一个是TRAIL_FILE,那么在每次运行前,设置好相应变量的值,则可以让OGG抽取不同的SID和生成不同的trail.

如下示例:
export ORA_SID=testdb
export TRAIL_FILE=tb
./extract pf dirprm/ex1.prm rf dirrpt/ex1.rpt 之后.

则会生成
./dirdat/tb

并且在EX1.rpt中,可以看到:

2021-04-19 15:13:13  INFO    OGG-01889  Flush size (max message size) is set to 27,985.
ex1
setenv(oracle_sid='?ORA_SID')
?ORA_SID = testdb
userid ogg, password ***
exttrail ./dirdat/?TRAIL_FILE
?TRAIL_FILE = tb
table schema.tb1;

2021-04-19 15:13:13  INFO    OGG-01851  filecaching started: thread ID: 1029.

    如果我们有多个不同的参数需要执行,且又不希望每次运行前修改配置文件,则可以使用上面的方法批量执行。

主要应用场景:基于OGG的初始化时,可通过命令行配置不同的参数,在每次调用时读取不同的数据行。

ref: https://www.ateam-oracle.com/oracle-goldengate-parameter-substitution

原文地址:https://www.cnblogs.com/margiex/p/14700139.html