oracle ogg 配置参数释义
1、管理进程 mgr 参数
* 源端参数
port 7839
-- 通信端口7839,源端和目标端需要保持一致。
dynamicportlist 7840-7939
-- 动态端口列表的范围从7840到7939。当制定端口被占用或者出现通信故障,管理进程将会从列表中选择下一个端口尝试连接,避免通信端口的单点故障。
autostart extract *
-- 当mgr进程启动后启动extract进程
autorestart extract *, retries 5, waitminutes 2
-- 当extract进程中断后尝试自动重启,每隔2分钟尝试启动一次,尝试5次。
purgeoldextracts /u01/app/oracle/ogg_home/dirdat/ *, usecheckpoints, minkeepdays 5
purgeoldextracts ./dirdat/ *, usecheckpoints, minkeephours 1
purgeoldextracts ./dirdat/ *, usecheckpoints, minkeepdays 10
-- 此行是新添加的内容,表示超过一小时且超过读检查点的数据自动删除(相对路径写法)
-- 定期清理dirdat路径下的本地队列(local trail)。保留期限10天,过期后自动删除。从而控制队列文件的目录不会增长过大。
lagreporthours 1
-- 每隔一小时检查各进程延时情况,并记录到 goldengate report 文件。
laginfominutes 30
-- 进程复制延时超过30分钟,向日志文件记录一条错误日志
lagcriticalminutes 45
-- 传输延时超过45分钟将写入警告日志
* 目标端参数
autostart replicat *
-- 当mgr进程启动后启动replicat进程
autorestart replicat *, retries 5, waitminutes 2
-- 当replicat进程中断后尝试自动重启,每隔2分钟尝试启动一次,尝试5次。
purgeddlhistory minkeepdays 7, maxkeepdays 10
-- 删除ddl历史表,最小保存7天,最大保存10天。
purgemarkerhistory minkeepdays 7, maxkeepdays 10
-- 删除marker历史表,最小保存7天,最大保存10天。
2、抽取进程参数
setenv(oracle_sid="orcl")
-- 设置oracle数据库实例sid
setenv(nls_lang=american_america.al32utf8)
-- 设置goldengate的字符集变量信息,此处值会覆盖操作系统级别的变量。该值需要和数据库字符集匹配一致。
reportcount every 30 minutes, rate
-- 每隔30分钟报告一次从程序开始到现在的抽取进程或者复制进程的事物记录数,并汇报进程的统计信息
discardfile /u01/app/oracle/ogg_home/dirrpt/extsr.dsc, append, megabytes 1024
-- 将执行失败的记录保存在discard file中,discard file文件记录了goldengate进程错误、数据库错误、goldengate操作等信息。
-- 该文件位于/u01/app/oracle/ogg_home/dirrpt/extsr.dsc,大小为1024mb。文件中已经包含记录的话,再后面继续追加,不删除之前的记录。
discardrollover at 3:00
-- 为了防止discard file被写满,每天3:00做一次文件过期设定
exttrail /u01/app/oracle/ogg_home/dirdat/sr
-- 队列文件路径, trail文件存放路径。
-- 有时候开启ogg进程的时候较慢,可能是因为需要同步的表太多,ogg在开启进程之前会将需要同步的表建立一个记录并且存入到磁盘中,
-- 这样就需要耗费大量的时间。使用该参数来解决此问题。
dboptions allowunusedcolumn
-- 用于阻止抽取进程抽取数据时由于表含有unused列而导致进程异常终止(abend)。使用该参数,抽取进程抽取到unused列时也会向日志文件记录一条警告信息。
fetchoptions nousesnapshot
-- 默认值为 usesnapshot,表示利用数据库闪回读取数据。nousesnapshot 表示直接从原表读取相关数据。
fetchoptions fetchpkupdatecols
-- 当使用了 handlecollisions 时,请使用该参数。
-- 复制进程出现丢失update记录(missing update)并且更新的是主键,update将转换成insert。由于插入的记录可能不是完整的行,若要保证完整需要加入此参数
table ogg.*;
-- 需要复制的对象列表
3、投递进程参数
rmthost 10.0.0.64, mgrport 7839, compress
-- 目标端主机ip,管理进程端口号,投递前压缩队列文件
passthru
-- 表示传输进程直接跟抽取进程交互,而不再和数据库进行交互,减少数据库资源的利用。
rmttrail /u01/app/oracle/ogg_home/dirdat/tr
-- 目标端保存队列文件的目录
dynamicresolution
-- 动态解析表名(新版本已经弃用)
-- 复制范围和抽取进程对应即可
4、复制进程参数
report at 06:00
-- 每天06:00定期生成一个report文件
reportrollover at 02:00
-- 为了防止report file被写满,每天2:00做一次文件过期设定
reperror default, abend
-- 除了特殊指定的reperror语句,报告所有复制期间出现的错误,回滚非正常中断的事物和进程。遇到不能处理的错误就自动abend,启动需要人工干预处理
allownoopupdates
-- 当源表有排除列情况或者有目标表不存在的列时,当更新这列goldengate默认报错。应用该参数后,即可让goldengate生成一条警告信息而不是报错。
assumetargetdefs
-- 使用assumetargetdefs参数时,用map语句中指定的生产库源表和灾备端目标表具有相同的列结构。它指示的oracle goldengate不在生产端查找源表的结构定义。
handlecollisions
-- 用于goldengate自动过滤不能出来的冲突记录,为了严格保证数据一致性
discardfile /u01/app/oracle/ogg_home/dirrpt/repsa.dsc, append, megabytes 1024
-- 该文件位于./dirrpt/repsa.dsc,大小为1024mb。 文件中已经包含记录的话,再后面继续追加,不删除之前的记录。
discardrollover at 02:00
-- 为了防止discard file被写满,每天2:00做一次文件过期设定
map ogg.*, target ogg.*;
-- 对应需要复制的对象