适用范围
适用于GoldenGate进程日常维护与管理。
GoldenGate日常维护与管理
1. 检查OGG进程的参数文件
# 在启动OGG进程前,使用checkprm检查参数的合法性
cd $OGG_HOME
./checkprm help
./checkprm ./dirprm/extenmo1 -C extract -M integrated extract -V
#说明
-C OGG组件名称
-M mode名称
-P 平台名称
-D 数据库名称
-V 详细信息
2.OGG进程状态
#先确定OGG进程运行在哪个节点,然后再检查进程状态,正常是running状态
info all
#检查进程的详细状态
send extenmo1 status
send dpenmo1 status
3.OGG进程的详细信息
#查看OGG进程的状态,比如:读写了哪些文件,使用哪个参数文件等
info extenmo1 detail
info dpenmo1 detail
4.查看检查点
#OGG的检查点,将OGG进程当前读取和写入位置存储到磁盘,主要用于进行恢复。
#通过多次查看OGG进程检查点,对比检查点的值,可以判断OGG进程是否在处理,还是停在某个检查点位置
#查看OGG进程检查点信息
info extenmo1 showch
info dpenmo1 showch
info repenmo1 shwoch
- 说明
抽取进程
(1)Read Checkpoint #1
Recovery Checkpoint:最旧的未提交事务的位置,通过这个检查点,可以判断是否有长时间未提交的事务
Current Checkpoint:当前OGG Extract进程读取的位置,可通过多次执行该命令,对比该检查点的值,判断OGG进程是否在处理,还是停在某个检查点位置
(2)Write Checkpoint #1
Current Checkpoint:当前OGG进程写入到本地的哪个trail文件
投递进程
(1)Read Checkpoint #1
Current Checkpoint:当前OGG Datapump进程读取到本地的哪个trail文件
(2)Write Checkpoint #1
Current Checkpoint:当前OGG Datapump进程写入到远程的哪个trail文件
复制进程
(1)Read Checkpoint #1
Current Checkpoint:当前OGG replicat进程读取本地的哪个trail文件
5.查看延迟
- 通过进程查看延迟信息
#查看OGG进程的检查点信息
lag extenmo1
lag dpenmo1
lag repenmo1
#Manager进程中配置报告延迟信息的参数
LAGREPORTMINUTES 5
LAGINFOMINUTES 5
LAGCRITICALMINUTES 5
#说明
(1)LAGREPORTMINUTES、LAGREPORTHOURS参数指定manager进程检查延迟的时间间隔;
(2)LAGINFOSECONDS、LAGINFOMINUTES、LAGINFOHOURS参数指定基本阈值;如果延迟超过指定值,OGG会将延迟信息报告给错误日志;如果超过LAGCRITICAL参数指定的值,manager会将延迟报告为关键,否则报告为参考信息;
(3)LAGCRITICALSECONDS、LAGCRITICALMINUTES、LAGCRITICALHOURS参数指定被认为是关键的延迟阈值,并在达到阈值时强制向错误日志发出告警信息;
- 通过视图查看延迟信息
select extract_name,(avaliable_message_create_time-capture_message_create_time)*86400 latency_in_seconds
from gv$goldengate_capture;
select r.apply_name,(r.dequeu_time-c.lwm_message_create_time)*86400 latency_in_seconds
from gv$gg_apply_reader r,gv$gg_apply_coordinator c
where rapply#=c.apply# and r.apply_name=c.apply_name
6.统计
#方法1
通过OGG stats命令,查看OGG进程的统计;建议先重置统计数据,在查看重置后到当前的统计数据
抽取进程
stats extenmo1 reset
stats extenmo1 latest totalsonly *.*
投递进程
stats dpenmo1 reset
stats dpenmo1 latest totalsonly *.*
复制进程
stats repenmo1 reset
stats repenmo1 latest totalsonly *.*
#方法2
通过OGG report文件,查看OGG进程的统计,可以反映出哪个OGG进程处理速度慢
vi /home/oracle/ogg/ogg_stats.sh
echo "===extract process==="
/usr/bin/grep "records processed as of" /u01/app/extract/dirrpt/EXTENMO1.rpt
echo "===datapump process==="
/usr/bin/grep "records processed as of" /u01/app/extract/dirrpt/DPENMO1.rpt
echo "===replicat process==="
/usr/bin/grep "records processed as of" /u01/app/extract/dirrpt/REPENMO1.rpt
说明:
delta表示每秒处理的记录数量,通过对比各个进程的delta值,可以反映出哪个OGG进程处理速度慢。
#补充说明
#进程状态-status
status ER *
status enmoext1
send ER * status
send enmoext1 status
#进程延迟
lag ER *
lag enmoext1
#检查进程总流量-stats
stats ER * total/daily/hourly/latest
stats enmoext1 total/daily/hourly/latest
stats enmoext1 totalsonly *.*
stats enmoext1 totalsonly *.*.*
#进程事务-send
send ER * showtrans
send enmoext1 showtrans
#进程检查点
info enmoext1 showch
7.Cache统计
#当处理大量长时间运行的事务时,OGG extract进程需要更多的内存来保存长时间运行的事务;如果内存超过OGG extract进程的cachesize大小,OGG extract进程将做文件缓存。
#虚拟内存的使用和文件缓存。
#检查OGG extract进程的虚拟内存使用情况和缓存大小设置
send extenmo1 cachemgr cachestats
send dpenmo1 cachemgr cachestats
说明:
从cache manamger vm usage和cache configuration配置可以判断cachesize是否配置合理,如果不合理使用CACHEMGR CACHESIZE参数调整大小,然后重启OGG进程;在重启进程前确保系统有足够的交换空间。
参数解读:
#仅输出free queues的统计
send extenmo1 cachemgr queues
#仅输出指定object pool统计
send extenmo1 cachemgr cachepool n
参考:
GoldenGate Extract reading slowly during recovery mode(Doc ID 1451191.1)
Understanding OGG Cache management reports and usage(Doc ID 1358957.1)
8.网络统计
#显示OGG Extract和目标系统之间网络活动统计信息
#使用ACFS共享文件系统,没有使用data pump进程,可以查看extract进程
send dpenmo1 gettcpstats
#主要关注发功和等待时间信息。
9.日志统计
#OGG extract进程处理Oracle重做日志文件相关的统计
send extenmo1 logstats
#一般情况下,建议每5分钟执行1次,执行3次后,进行统计数据比对
如果输出分析,读做操的wait统计信息较高,写操作的wait统计信息为空,建议添加参数(如下),通过减少读操作的wait空寂信息来提高吞吐量。
edit param extenmo1
TRANLOGOPTIONS INTEGRATEDPARAMS(_CHECKPOINT_FREQUENCY 10000)
TRANLOGOPTIONS CHECKPOINTRETENTIONTIME 1
TRANLOGOPTIONS ASYNCTRANSPROCESSING 600
TRANLOGOPTIONS _READAHEADCOUNT 64
#参数含义有待查明
#重启extract进程
10.事务
#每一个事务是由事务ID标识,而事务ID有3部分组成:
- Undo segment number:
- Undo slot number
- Sequence number
#查看OGG extract进程当前处理的事务
send <process_name> showtrans [thread n] [count n]
#说明
thread n可选,表示只查看其中一个节点上未提交的事务
count n可选,便是只显示n条记录
send extenmo1 showtrans
#以时间降序排列的所有未提交事务列表,通过xid可以查找到对应的事务,并请开发/DBA查找未提交原因。
XID事务号的组成:(usn number).(slot number).(seq number)
select * from v$transaction where xidusn=<usn number> and xidslot=<slot number> and xidsqn=<seq number>;
Start Time:OGG抽取该事务第一个操作的时间
#使用SQL语句查询
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
select s,sid,s.serial#,s.status,s.username,s.sql_id,t.start_time
from gv$session s,gv$transaction t
where s.inst_id=t.inst_id
and s.addr=t.ses_addr
order by t.start_time desc;
#在OGG extract进程的参数文件中配置长事务告警
WARNLONGTRANS 1h, CHECKINTERVAL 5m
表示OGG每隔5分钟检查一下长事务,如果有超过1小时的长事务,OGG会在ggserr.log中记录告警信息;可以查看ggserr.log或ggsci中执行view ggsevt命令查看告警信息。
#如果事务执行时间超过1小时,OGG日志文件ggserr.log记录告警信息:
Long Running Transaction:XID XIDUSN.XIDSLOT.XIDSQN