集团某在线系统使用OGG做了同步复制用于二期业务生产使用。有同事过来说复制进程有点异常

-bash-3.2$ ogg

Oracle GoldenGate Command Interpreter for Oracle

Version 11.2.1.0.6 16211226 OGGCORE_11.2.1.0.6_PLATFORMS_130418.1829_FBO

Solaris, sparc, 64bit (optimized), Oracle 11g on Apr 22 2013 15:23:39

Copyright (C) 1995, 2013, Oracle and/or its affiliates. All rights reserved.

GGSCI (ODSDB) 1> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

JAGENT      STOPPED

REPLICAT    RUNNING     RP10        00:00:00      00:00:03

REPLICAT    RUNNING     RP7         00:00:06      00:00:03

REPLICAT    RUNNING     RPS1        42:41:14      00:00:01

REPLICAT    RUNNING     RPS2        00:00:00      00:00:10

REPLICAT    RUNNING     RPS2A       00:00:00      00:00:00

REPLICAT    RUNNING     RPS2B       00:00:00      00:00:00

REPLICAT    RUNNING     RPS3        00:00:00      00:00:02

REPLICAT    RUNNING     RPS3A       00:00:00      00:00:03

REPLICAT    RUNNING     RPS3B       00:00:00      00:00:02

REPLICAT    RUNNING     RPS4        00:00:00      00:00:07

REPLICAT    RUNNING     RPS4A       00:00:00      00:00:07

REPLICAT    RUNNING     RPS4B       00:00:00      00:00:07

REPLICAT    RUNNING     RPS4C       00:00:00      00:00:07

REPLICAT    RUNNING     RPS4D       00:00:00      00:00:08

REPLICAT    RUNNING     RPS4E       00:00:00      00:00:07

REPLICAT    RUNNING     RPS4F       00:00:00      00:00:07

REPLICAT    RUNNING     RPS4G       00:00:00      00:00:07

REPLICAT    RUNNING     RPS4H       00:00:00      00:00:07

REPLICAT    RUNNING     RPS4I       00:00:00      00:00:08

REPLICAT    RUNNING     RPS4J       00:00:00      00:00:07

跟他去了终端旁边,发现确实有个rps1进程延迟有点高。看着进程状态是RUNNING,但是根据我维护六年ogg来看,有可能是假象,那么怎么判断呢?

1,查看ggserr.log

2,查看dirrpt下面该进程的dsc文件

3,info 进程名多次,看看RBA是否有变化

经过以上几步rps1进程状态是正常的,延迟高问题出在哪里?view params rps1看到该进程只有一张表。那我们看看这个进程到底卡在哪里了

SQL> !ps -ef |grep rps1 |grep -v grep

orao 12169 11012   0   Jun 07 ?         614:58 /odogg/baseogg/replicat PARAMFILE /odsogg/baseogg/dirprm/rps1.prm REPORTFILE /

SQL> !ps -ef |grep 12169 |grep -v grep

orao 12170 12169   1   Jun 07 ?        2315:30 oracleodb (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

orao 12169 11012   0   Jun 07 ?         614:58 /odogg/baseogg/replicat PARAMFILE /odsogg/baseogg/dirprm/rps1.prm REPORTFILE /

SQL> select s.sid,s.SERIAL#,sql_id from v$process p,v$session s where p.addr=s.paddr and p.spid=12170;

SID    SERIAL# SQL_ID

---------- ---------- -------------

5146        113 5099dwmx3s4mf

SQL> /

SID    SERIAL# SQL_ID

---------- ---------- -------------

5146        113 dzubcf8jm69yx

SQL> /

SID    SERIAL# SQL_ID

---------- ---------- -------------

5146        113 dzubcf8jm69yx

SQL> /

SID    SERIAL# SQL_ID

---------- ---------- -------------

5146        113 dzubcf8jm69yx

询问了一下维护过该系统的同事,说是不是统计信息太旧。顺着思路往下走走

SQL> select OWNER,TABLE_NAME,LAST_ANALYZED from dba_tables where table_name='TF_F_USER_REVGRPTAG';

OWNER             TABLE_NAME        LAST_ANALYZED

-------------------------------------------------------------------------------

TTT              TF_F_USER_REXXX     2017-06-26 00:20:56

SQL>  select table_name,num_rows from dba_tables where owner='TTT' and table_name='TF_F_USER_REXXX';

TABLE_NAME              NUM_ROWS

------------------------------ ----------

TF_F_USER_REXXX          409269832

SQL> select count(*) from TTT.TF_F_USER_REXXX;

COUNT(*)

----------

409955510

接下来我们看看该sql执行计划是不是走错了?

两条执行计划,很明显137632316运行了5400次但是执行时间却远远高于第二个执行计划。

用sql profile绑定一下执行计划

SQL> @coe_xfr_sql_profile.sql

Parameter 1:

SQL_ID (required)

Enter value for 1: dzubcf8jm69yx

PLAN_HASH_VALUE AVG_ET_SECS

--------------- -----------

2320424968        .004

137632316      21.119

Parameter 2:

PLAN_HASH_VALUE (required)

Enter value for 2: 2320424968

Values passed to coe_xfr_sql_profile:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

SQL_ID         : "dzubcf8jm69yx"

PLAN_HASH_VALUE: "2320424968"

查看是否绑定成功

SQL>select name from dba_sql_profiles;

NAME

------------------------------

coe_dzubcf8jm69yx_2320424968

SYS_SQLPROF_015d075ccdd40000

coe_a5hgtqfq09tcu_229988255

在将内存中的该sql语句清除出去

SQL>select address,hash_value,executions,parse_calls from v$sql where sql_TEXT like 'UPDATE "TTT"."TF_F_USER_RExxxx" SET "PARTITION_ID" = :a27,"USER_ID" = :a28%';

ADDRESS          HASH_VALUE EXECUTIONS PARSE_CALLS

---------------- ---------- ---------- -----------

00000017673EA5E8 4198240878        100           0

00000017CF3E0000  897328139        673           0

00000017982D40D0 1588244011          8           0

000000049D04B1A8  590555101         10           0

00000017AA525230 4271852353          2           0

0000001777FC6A20 3666847391        735           0

00000017B9154A58 1180290247          1           0

7 rows selected.

SQL>alter session set events '5614566 trace name context forever';

Session altered.

SQL>exec dbms_shared_pool.purge('00000017673EA5E8,4198240878','C');

PL/SQL procedure successfully completed.

SQL>exec dbms_shared_pool.purge('00000017CF3E0000,897328139','C');

exec db

PL/SQL procedure successfully completed.

SQL>ms_shared_pool.purge('00000017982D40D0,1588244011','C');

PL/SQL procedure successfully completed.

SQL>exec dbms_shared_pool.purge('000000049D04B1A8,590555101','C');

PL/SQL procedure successfully completed.

SQL>exec dbms_shared_pool.purge('00000017AA525230,4271852353','C');

PL/SQL procedure successfully completed.

SQL>exec dbms_shared_pool.purge('0000001777FC6A20,3666847391','C');

PL/SQL procedure successfully completed.

SQL>exec dbms_shared_pool.purge('00000017B9154A58,1180290247','C');

PL/SQL procedure successfully completed.

观察ogg复制进程延迟已经开始减小。该隐患顺利解决!

GGSCI (ODSDB) 8> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

JAGENT      STOPPED

REPLICAT    RUNNING     RP10        00:00:00      00:00:01

REPLICAT    RUNNING     RP7         00:00:00      00:00:07

REPLICAT    RUNNING     RPS1        31:10:29      00:00:50

REPLICAT    RUNNING     RPS2        00:00:00      00:00:00

REPLICAT    RUNNING     RPS2A       00:00:00      00:00:00

REPLICAT    RUNNING     RPS2B       00:00:00      00:00:00

REPLICAT    RUNNING     RPS3        00:00:00      00:00:01

REPLICAT    RUNNING     RPS3A       00:00:00      00:00:02

REPLICAT    RUNNING     RPS3B       00:00:00      00:00:01

REPLICAT    RUNNING     RPS4        00:00:00      00:00:05

REPLICAT    RUNNING     RPS4A       00:00:00      00:00:04

REPLICAT    RUNNING     RPS4B       00:00:00      00:00:04

REPLICAT    RUNNING     RPS4C       00:00:00      00:00:04

REPLICAT    RUNNING     RPS4D       00:00:00      00:00:04

REPLICAT    RUNNING     RPS4E       00:00:00      00:00:04

REPLICAT    RUNNING     RPS4F       00:00:00      00:00:04

REPLICAT    RUNNING     RPS4G       00:00:00      00:00:05

REPLICAT    RUNNING     RPS4H       00:00:00      00:00:04

REPLICAT    RUNNING     RPS4I       00:00:00      00:00:04

REPLICAT    RUNNING     RPS4J       00:00:00      00:00:04

Oracle查看ogg延时,OGG复制进程延迟不断增长相关推荐

  1. OGG复制进程延迟处理思路与方法

    可能问题分析: 1.源端E进程处于abend状态且长时间未解决,导致pump和Replicat进程均出现延迟 2.源端有大表做批量更新操作(比如对历史数据插入.更新.删除几千万上亿条数据) 3.表没有 ...

  2. OGG重复记录导致复制进程挂起

    今天处理了个复制进程异常挂起的CASE,出错日志是: 2012-08-20 10:33:02  WARNING OGG-00869  Oracle GoldenGate Delivery for Or ...

  3. gg oracle tjs 同步_配置Goldengate从Oracle到PostgreSQL的同步复制

    1.平台环境 Oracle:rhel6.7+Oracle11.2.0.4  ip:192.168.56.2 PostgreSQL:rhel7.2+Pg9.6.1  ip:192.168.56.25 G ...

  4. OGG目标端复制Sequence时Hang住的问题

    昨天遇到一个问题一个OGG的复制进程在复制序列(Sequence)时Hang住不动,进程状态一直是Running状态但是不往前进行复制,导致进程延迟6个多小时 GGSCI (ctm-3) 2> ...

  5. ogg oracle 测试kafka_利用ogg实现oracle到kafka的增量数据实时同步

    前言 ogg即Oracle GoldenGate是Oracle的同步工具,本文讲如何配置ogg以实现Oracle数据库增量数据实时同步到kafka中,其中同步消息格式为json. 下面是我的源端和目标 ...

  6. ogg oracle 测试kafka_基于OGG的Oracle与Hadoop集群/kafka准实时同步

    Oracle里存储的结构化数据导出到Hadoop体系做离线计算是一种常见数据处置手段.近期有场景需要做Oracle到Hadoop体系的实时导入,这里以此案例做以介绍. Oracle作为商业化的数据库解 ...

  7. ogg oracle 到mysql_借助OGG完成Oracle到MySQL的数据迁移

    现在有个任务是需要把Oracle的数据迁移到MySQL,因为就涉及到了几个表,所以我最先想到了使用spool把Oracle的数据导成txt文件,然后再load 进去MySQL.非常遗憾的是,我的有一个 ...

  8. oracle ogg下载安装,【OGG】OGG的下载和安装篇

    [OGG]OGG的下载和安装篇 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~ ...

  9. linux查oracle端口被占用,Linux查看端口占用及对应进程号

    常用命令: 1,lsof -i:端口号 2,netstat -tunlp|grep 端口号 这两个命令都可以查看端口被什么进程占用. lsof -i 用以显示符合条件的进程情况,lsof(list o ...

最新文章

  1. mysql异地备份_MySQL数据库异地备份与还原方法
  2. C:如何分解整数(从末位往前取以及从首位往后取)
  3. 回顾微软近年来对于Linux和开源的策略
  4. php调用数据库中的图片地址显示不出来,图片显示不出来,但是数据库里有显示...
  5. VS2015升级Update2之后Cordova程序提示:此应用程序无法在此电脑上运行
  6. 推荐系统基础之介绍入门篇
  7. 4.6 GoogLeNet CNN、tensorflow实现——python实战
  8. 数学建模1---基本方法和步骤
  9. 高通sensor core培训笔记
  10. 文化财经SAR指标计算(一)
  11. 去百度还是去创新工厂? 信开复还是信彦宏?
  12. 3种方法解决word文档无法编辑
  13. 【网络】广域网、局域网、城域网
  14. educoder 数据库原理与应用 实验六 约束与索引
  15. 学籍管理系统(C语言版)
  16. squid笔记下载_Squid笔记
  17. (转载)年终总结 算法数据的思考 结尾彩蛋
  18. 基于stm32的视觉和蓝牙控制F407芯片智能机械臂控制小车
  19. linux 第十七天 linuxprobe
  20. 命令行操作oracle,显示英文而不是中文

热门文章

  1. 运行npm install时会一直加载转圈
  2. 家庭花卉养殖技巧及技术收集
  3. 基于MPC的移动机器人轨迹跟踪控制qpOASES例程
  4. 电脑记账最简单的方法
  5. 强制退出当前ubuntu命令
  6. GDOI2018D2T1 谈笑风生
  7. BZOJ #3653. 谈笑风生
  8. wince 之临时宏控制 bib 和 reg
  9. 网线制作:网线和水晶头的接法
  10. fastJson 将json转换成LinkedHashmap,全部有序