【大数据开发运维解决方案】ogg(GoldenGate)三大进程常用参数

简介: PORT 7809管理进程的监听端口,默认使7809,当7809不可用时会从DYNAMICPORTLIST定义的列表中选择一个可用的端口,主要用于本地goldengate进程之间的通信DYNAMICPORTLIST 7810-7860动态端口,可以指定最大256个可用端口列表,用于主端和备端的进程通信,当目标端有防火墙设置时或者主端的投递进程传送数据要经过防火墙(就是主端有防火墙设置时)才能到达备端时,需要在网络上开通指定的端口。源端和目标段的Collector、Replicat、GGSCI进程通信也会使用这些端口,指定足够的端口去容纳进程数的扩张,这样就不需要停止和重启管理器进程

============================================1、管理进程
oggCI (ogg1) 22> edit params mgr
PORT 7809
DYNAMICPORTLIST 7810-7860
AUTORESTART ER *, RETRIES 3, WAITMINUTES 5
PURGEOLDEXTRACTS ./dirdat/pd*, USECHECKPOINTS, MINKEEPDAYS 30
lagreporthours 1
laginfominutes 30
lagcriticalminutes 60

参数说明:
PORT 7809
管理进程的监听端口,默认使7809,当7809不可用时会从DYNAMICPORTLIST定义的列表中选择一个可用的端口,主要用于本地goldengate进程之间的通信
DYNAMICPORTLIST 7810-7860
动态端口,可以指定最大256个可用端口列表,用于主端和备端的进程通信,当目标端有防火墙设置时或者主端的投递进程传送数据要经过防火墙(就是主端有防火墙设置时)才能到达备端时,需要在网络上开通指定的端口。源端和目标段的Collector、Replicat、GGSCI进程通信也会使用这些端口,指定足够的端口去容纳进程数的扩张,这样就不需要停止和重启管理器进程
AUTORESTART ER *, RETRIES 3, WAITMINUTES 5
AUTORESTART 自动启动所有的进程,包含所有的抓取进程和投递进程
RETRIES 3, WAITMINUTES 5 自动重启参数设置,本处设置表示每3分钟对所有失败的EXTRACT进程尝试重新启动,共尝试5次
PURGEOLDEXTRACTS ./dirdat/pd*, USECHECKPOINTS, MINKEEPDAYS 30
定期清理trail文件设置,本处设置表示对于超过30天的trail文件进行删除
lagreporthours 1
laginfominutes 30
lagcriticalminutes 60
定义数据延迟的预警机制,本处设置表示MGR进程每隔1小时检查EXTRACT的延迟情况,如果超过了30分钟就把延迟作为信息记录到错误日志中,如果延迟超过了60分钟,则把它作为警告写到错误日志中

============================================2、抽取进程配置

GGSCI (m25) 1> edit params e_prd

extract e_prd
setenv(NLS_LANG="AMERICAN_AMERICA.UTF8")
setenv(ORACLE_SID="prd")
userid ogg@PRD,password ogg0826
reportcount every 10 minutes,rate
numfiles 5000
discardfile ./dirrpt/e_prd.dsc,append,megabytes 1000
warnlongtrans 2h,checkinterval 3m
exttrail ./dirdat/pd
threadoptions maxcommitpropagationdelay 60000
dboptions allowunusedcolumn
tranlogoptions archivedlogonly
tranlogoptions altarchivelogdest primary /oracle/PP2/oraarch
tranlogoptions altarchivedlogformat %t_%s_%r.dbf
dynamicresolution
ddl include mapped
notcpsourcetimer
nocompressupdates
fetchoptions nousesnapshot
----------T_MIDDECLAREPREMIUM
table T1.T_MIDDECLAREPREMIUM,tokens(
TKN-CSN = @GETENV("TRANSACTION", "CSN"),
TKN-COMMIT-TS = @GETENV ("GGHEADER", "COMMITTIMESTAMP"),
TKN-OP-TYPE = @GETENV ("GGHEADER", "OPTYPE")
);

参数说明:
extract e_prd
抓取进程的名称
setenv(NLS_LANG="AMERICAN_AMERICA.UTF8")
指定ogg进程执行环境的字符集,与数据库字符集保持一致
setenv(ORACLE_SID="prd")
数据库实例名
userid ogg@PRD,password ogg0826
ogg管理员的账户和密码
reportcount every 10 minutes,rate
报告自extract启动以来处理的记录条数统计数字,记录的数字打印到屏幕或者报告文件内
numfiles 5000
控制OGG给多少张TABLE和MAP进行初始化的内存分配,并且此参数必须在TABLE、MAP、SOURCEDEFS、TARGETDEFS之前生效,默认值1000 ,最大值2百万,我们这里配置了5000,就是最多处理5000张表
discardfile ./dirrpt/e_prd.dsc,append,megabytes 1000
定义discardfile文件位置,文件路径必须为相对路径,如果处理中有记录出错会写入到此文件中,记录模式为追加,文件最大设置为1G
warnlongtrans 2h,checkinterval 3m
每隔3分钟检查一下长交易,如果有超过2个小时的长交易,GoldenGate会在根目录下的ggserr.log里面加入一条告警信息。可以通过察看ggserr.log或者在ggsci中执行view ggsevt命令查看这些告警信息。此配置可以有助于及时发现长交易并予以处理
exttrail ./dirdat/pd
定义抓取进程trail文件存放路径
threadoptions maxcommitpropagationdelay 60000
特定参数,在rac环境下需要配置,非rac环境下不需要配置。RAC集群中的所有节点必须同步系统时钟,GoldenGate通过比较本地系统的时间和事务提交的时间点来做出关键决策
dboptions allowunusedcolumn
在生产端库表中存在unused列时,需要配置该参数
tranlogoptions archivedlogonly
抓取进程使用ALO(Archived Log Only)模式,只抓取归档日志,不抓取redo日志
tranlogoptions altarchivelogdest primary /oracle/PP2/oraarch
指定dg库归档日志日志路径
tranlogoptions altarchivedlogformat %t_%s_%r.dbf
指定归档日志格式
dynamicresolution
抓取进程开启之前将需要同步的表建立一个记录并且存入到磁盘中,这样就需要耗费大量的时间。使用该参数来解决此问题
ddl include mapped
配置ddl映射访问,mapped 值映射我们下面配置的table里的表
notcpsourcetimer
EXTRACT使用TCPSOURCETIMER参数时,数据传递到目标端,会调整数据库记录的时间戳,这个时候GETENV("GGHEADER","COMMITTIMESTAMP")得到的时间戳既不是源端数据提交时间,也不是目标端的提交时间,使用NOTCPSOURCETIMER时,反应出事物在源端的提交时间,但是时间戳的精度只到秒
nocompressupdates
目标端有update set a=1 where a=1;这种操作,extract就要配置NOCOMPRESSUPDATES
fetchoptions nousesnapshot
抽取进程从源表中获取所需的数据,而不是从闪回日志种获取,默认值是usesnapshot从闪回日志中获取
table T1.T_MIDDECLAREPREMIUM,tokens(
TKN-CSN = @GETENV("TRANSACTION", "CSN"),
TKN-COMMIT-TS = @GETENV ("GGHEADER", "COMMITTIMESTAMP"),
TKN-OP-TYPE = @GETENV ("GGHEADER", "OPTYPE")
);
抓取进程抓取哪些表
TKN-CSN 源端事物操作的scn号
TKN-COMMIT-TS 源端事物的提交时间
TKN-OP-TYPE 源端实物的操作类型

===========================================3、添加抽取进程
add extract e_prd,tranlog,begin now
添加抽取进程,指定进程名称,从源端数据库的事务日志中抽取变化中抽取数据变化,命令结束后开始抽取
add exttrail ./dirdat/pd,extract e_prd,megabytes 500
添加trail文件,指定trail文件的相对路径,trail文件进程归属,文件最大大小为500M

===========================================4、投递进程配置
GGSCI (m25) 3> edit params d_prd

extract d_prd
rmthost 10.1.197.242(更换为新地址),mgrport 7809,compress
userid ogg@PRD,password ogg0826
passthru
numfiles 50000
rmttrail ./dirdat/pd
dynamicresolution
table t1.*;

参数说明:
extract d_prd
定义投递进程名称
rmthost 10.1.197.242(更换为新地址),mgrport 7809,compress
灾备端主机IP,管理进程端口号,投递前压缩队列文件
userid ogg@PRD,password ogg0826
ogg管理账户密码
passthru
投递进程数据投递模式有的两种选择: PASSTHRU(直通模式)、NOPASSTHRU(普通模式),默认是普通模式。
PASSTHRU: 不与数据库交互,前提是源库与目标库objects必须一致
没有指定PASSTHRU,就必须要有数据库连接信息:userid ogg@ORACSOGG,password ogg
numfiles 50000
最多处理5000张表
rmttrail ./dirdat/pd
灾备端保存队列文件的目录
dynamicresolution
动态解析表名
table t1.*;
要投递的表清单
===========================================5、添加投递进程
add extract d_prd,exttrailsource ./dirdat/pd
添加投递进程,指定进程名称,数据源为trail文,trail文件的相对路径
add rmttrail ./dirdat/pd,extract d_prd,megabytes 500
添加远程投递trail文件,指定远程投递trail文件的相对路径,文件归属,文件最大大小为500M

===========================================6、应用进程配置
GGSCI (m25) 1> edit params r_prd

replicat r_prd
setenv(NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
userid ogg,password ogg
reportcount every 30 minutes,rate
reperror default,abend
numfiles 50000
checkpointsecs 40
assumetargetdefs
discardfile ./dirrpt/r_prd.dsc,append,megabytes 1000
allownoopupdates
ddl &
include mapped &
exclude objname t1.*_audit &
exclude optype create &

    objtype 'table' &

exclude optype drop &

    objtype 'table' &

exclude objtype 'index' &

    objname t1.*_his &

exclude instr 'constraint' &
exclude instr 'null' &
exclude instr 'trigger' &
exclude instr 'rename to' &
exclude instr 'grant' &
exclude instr 'revoke' &
exclude instr 'analyze'
ddloptions report
allowduptargetmap
----------T_MIDDECLAREPREMIUM
getinserts
getupdates
getdeletes
noupdatedeletes
map T1.T_MIDDECLAREPREMIUM,target T1.T_MIDDECLAREPREMIUM;
updatedeletes
map T1.T_MIDDECLAREPREMIUM,target T1.T_MIDDECLAREPREMIUM_HIS,keycols(SERIALNO);
getinserts
ignoreupdates
ignoredeletes
map T1.T_MIDDECLAREPREMIUM,target T1.T_MIDDECLAREPREMIUM_AUDIT,keycols(SERIALNO),colmap(
usedefaults,
csn=@token("TKN-CSN"),
optime=@token("TKN-COMMIT-TS"),
optype=@token("TKN-OP-TYPE"),
inserttime=@token("TKN-COMMIT-TS"),
curdate=@DATENOW()
);
ignoreinserts
getupdates
getdeletes
map T1.T_MIDDECLAREPREMIUM,target T1.T_MIDDECLAREPREMIUM_AUDIT,keycols(SERIALNO),colmap(
usedefaults,
csn=@token("TKN-CSN"),
optime=@token("TKN-COMMIT-TS"),
optype=@token("TKN-OP-TYPE"),
curdate=@DATENOW()
);

参数说明:
replicat r_prd
定义应用进程名称
setenv(NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
指定ogg进程执行环境的字符集,与数据库字符集保持一致
userid ogg,password ogg
ogg库管理员账户密码
reportcount every 30 minutes,rate
报告自replicat启动以来处理的记录条数统计数字,记录的数字打印到屏幕或者报告文件内
reperror default,abend
定义出错以后进程的响应,一般可以定义为两种:
ABEND,即一旦出现错误即停止复制,此为缺省配置;
DISCARD,出现错误后继续复制,只是把错误的数据放到discard文件中
numfiles 50000
最多处理5000张表
checkpointsecs 40
将写检查点的时间设置为40秒,默认为10秒,调节这两个参数可能会使数据复制的延迟相应增大若干秒
assumetargetdefs
当源表和目标表结构一样时,使用此参数,此参数告知ogg不要从源表定义的结构文件中查询表结构,如果源表和目标表结构不一样时,用SOURCEDEFS替换ASSUMETARGETDEFS
discardfile ./dirrpt/r_prd.dsc,append,megabytes 1000
定义discardfile文件位置,文件路径必须为相对路径,如果处理中有记录出错会写入到此文件中,记录模式为追加,文件最大设置为1G
allownoopupdates
用来处理“没有操作的操作”,例如:源表 set x=a where x=a
ddl &
include mapped &
exclude objname t1.*_audit &
exclude optype create &

    objtype 'table' &

exclude optype drop &

    objtype 'table' &

exclude objtype 'index' &

    objname t1.*_his &

exclude instr 'constraint' &
exclude instr 'null' &
exclude instr 'trigger' &
exclude instr 'rename to' &
exclude instr 'grant' &
exclude instr 'revoke' &
exclude instr 'analyze'
ddl应用范围和过滤条件
ddloptions report
ddl操作打印到进程报告里
allowduptargetmap
表和目标表表结构可映射多次,如果不指明ALLOWDUPTARGETMAP,默认表结构映射只使用第1个colmap,后面会忽略掉
getinserts
getupdates
getdeletes
哪些操作类型数据会被应用,我们insert update和delete都要
noupdatedeletes
不对delete操作进行转换为update
map T1.T_MIDDECLAREPREMIUM,target T1.T_MIDDECLAREPREMIUM;
配置源表目标表映射关系
updatedeletes
对delete操作转换为update
map T1.T_MIDDECLAREPREMIUM,target T1.T_MIDDECLAREPREMIUM_HIS,keycols(SERIALNO);
getinserts
ignoreupdates
ignoredeletes
map T1.T_MIDDECLAREPREMIUM,target T1.T_MIDDECLAREPREMIUM_AUDIT,keycols(SERIALNO),colmap(
usedefaults,
csn=@token("TKN-CSN"),
optime=@token("TKN-COMMIT-TS"),
optype=@token("TKN-OP-TYPE"),
inserttime=@token("TKN-COMMIT-TS"),
curdate=@DATENOW()
);
ignoreinserts
getupdates
getdeletes
map T1.T_MIDDECLAREPREMIUM,target T1.T_MIDDECLAREPREMIUM_AUDIT,keycols(SERIALNO),colmap(
usedefaults,
csn=@token("TKN-CSN"),
optime=@token("TKN-COMMIT-TS"),
optype=@token("TKN-OP-TYPE"),
curdate=@DATENOW()
);
===========================================7、添加应用进程
add replicat r_prd,exttrail ./dirdat/pd checkpointtable ogg.ckpt
添加应用进程,指定应用进程名称,trail文件路径,检查点表

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何开发ODPS Spark任务
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
541 2
|
人工智能 DataWorks 大数据
大数据AI一体化开发再加速:DataWorks 支持GPU类型资源
大数据开发治理平台 DataWorks 的Serverless资源组支持GPU资源类型,以免运维、按需付费、弹性伸缩的Serverless架构,将大数据处理与AI开发能力无缝融合。面向大数据&AI协同开发场景,DataWorks提供了交互式开发和分析工具Notebook。开发者在创建个人开发环境时,可以选择GPU类型的资源作为Notebook运行环境,以支持进行高性能的计算工作。本教程将基于开源多模态大模型Qwen2-VL-2B-Instruct,介绍如何使用 DataWorks Notebook及LLaMA Factory训练框架完成文旅领域大模型的构建。
1263 24
|
弹性计算 运维 监控
基于进程热点分析与系统资源优化的智能运维实践
智能服务器管理平台提供直观的可视化界面,助力高效操作系统管理。核心功能包括运维监控、智能助手和扩展插件管理,支持系统健康监控、故障诊断等,确保集群稳定运行。首次使用需激活服务并安装管控组件。平台还提供进程热点追踪、性能观测与优化建议,帮助开发人员快速识别和解决性能瓶颈。定期分析和多维度监控可提前预警潜在问题,保障系统长期稳定运行。
768 17
|
数据采集 机器学习/深度学习 DataWorks
DataWorks产品评测:大数据开发治理的深度体验
DataWorks产品评测:大数据开发治理的深度体验
809 1
|
运维 监控 Ubuntu
【运维】如何在Ubuntu中设置一个内存守护进程来确保内存不会溢出
通过设置内存守护进程,可以有效监控和管理系统内存使用情况,防止内存溢出带来的系统崩溃和服务中断。本文介绍了如何在Ubuntu中编写和配置内存守护脚本,并将其设置为systemd服务。通过这种方式,可以在内存使用超过设定阈值时自动采取措施,确保系统稳定运行。
846 4
|
运维 JavaScript jenkins
鸿蒙5.0版开发:分析CppCrash(进程崩溃)
在HarmonyOS 5.0中,CppCrash指C/C++运行时崩溃,常见原因包括空指针、数组越界等。系统提供基于posix信号机制的异常检测能力,生成详细日志辅助定位。本文详解CppCrash分析方法,涵盖异常检测、问题定位思路及案例分析。
848 4
|
运维 监控 JavaScript
鸿蒙next版开发:分析JS Crash(进程崩溃)
在HarmonyOS 5.0中,JS Crash指未处理的JavaScript异常导致应用意外退出。本文详细介绍如何分析JS Crash,包括异常捕获、日志分析和典型案例,帮助开发者定位问题、修复错误,提升应用稳定性。通过DevEco Studio收集日志,结合HiChecker工具,有效解决JS Crash问题。
1044 4
|
运维 算法 调度
深入理解操作系统:进程调度与优先级自动化运维:使用Ansible实现服务器集群管理
【8月更文挑战第27天】在操作系统的众多奥秘中,进程调度无疑是一个既简单又复杂的主题。它就像是交响乐团中的指挥,协调着每一个音符,确保乐曲和谐而有序地进行。本文将带领读者走进进程调度的世界,探索其背后的原理和实现,同时通过代码示例揭示其精妙之处。让我们一起揭开进程调度的神秘面纱,理解它在操作系统中的重要性。
|
消息中间件 算法 安全
操作系统处理多进程的问题及解决方案
【8月更文挑战第23天】
1094 1
|
SQL 分布式计算 MaxCompute
SQL开发问题之对于ODPS中的UNION操作,执行计划的问题如何解决
SQL开发问题之对于ODPS中的UNION操作,执行计划的问题如何解决
508 7