0
点赞
收藏
分享

微信扫一扫

GoldenGate之日常维护与管理

适用范围

适用于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

文档参考

maa-gg-performance

举报

相关推荐

0 条评论