[[toc]]

# 问题概述
xx库OGG延迟超过8个小时,但进程处于RUNNING。
# 问题原因
定位到有人通过A库的DBLINK修改目标库的数据。 OGG同步的表, 目标的端也在做修改相同数据,无法保证一致。 改完数据未进行提交,产生enq:tx lock,超过8个小时。

# 解决方案

跟业务核实并确认可以把dblink的session kill掉

# 模拟故障
1、准备3台测试环境
第一台:ogg源端
第二台:ogg目标端
第三台:模拟故障中的A库
2、测试创建测试表 在源端insert 2条记录
```

SQL> create table itpux01.t_ljc (a int);

表已创建。

SQL> insert into itpux01.t_ljc values(1)
2 ;

已创建 1 行。

SQL> insert into itpux01.t_ljc values(2);

已创建 1 行。

SQL> commit;

```
3、目标库创建表,并查询数据是否同步正常。
```

SQL> create table itpux01.t_ljc (a int);

表已创建。

SQL> select * from itpux01.t_ljc;

A
----------
1
2

```
4、在第三个库上

```
CREATE PUBLIC DATABASE LINK db_link_test2 CONNECT TO dbmt IDENTIFIED BY xxx USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.3.62)(PORT =1521 ))
)
(CONNECT_DATA =
(SERVICE_NAME = tsoadb)
)
)';
```
5、用dblink 做update语句,不要commit;
```
QL>
SQL> update itpux01.t_ljc@db_link_test2 set a=3 where a=2;

1 row updated.

SQL>
```
6、主库在插入几条记录
7、在目标库上看ogg进程
```

GGSCI (jcogg02) 33> info all

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING
REPLICAT RUNNING RITPUX01 00:00:00 02:46:35
```
8、查看一下active session
```
SQL> @ase
USERNAME SID EVENT MACHINE MODULE STATUS LAST_CALL_ET SQL_ID WAI_SECINW ROW_WAIT_OBJ# SQLTEXT BS CH# OSUSER HEX
----------- ---------- -------------------- ---------- -------------------- -------- ------------ --------------- ---------- ------------- ------------------------------ ---------- ---- ---------- ---------
GOLDENGATE 16 enq: TX - row lock c jcogg02 OGG-OPEN_DATA_SOURCE ACTIVE 4416 2c27jbgnzd0rg 0:4250 73785 UPDATE "ITPUX01"."T_LJC" x SET 1:1 0 oracle 1000000

SQL>
```
9、业务确认kill session
10、查看ogg 进程延迟
```

GGSCI (jcogg02) 49> info all

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING
REPLICAT RUNNING RITPUX01 00:00:00 00:00:02

```

# 参考文档

目标库DML 堵塞(dblink)导致OGG延迟的更多相关文章

  1. 测试:OGG初始化同步表,源端抽取进程scn<源端事务的start_scn时,这个变化是否会同步到目标库中?

    一.测试目标 疑问,OGG初始化同步表,源端抽取进程开始抽取的scn<源端事务的start_scn时,这个变化是否会同步到目标库中? 二.实验测试 如下进行测试! session 1 SQL&g ...

  2. impdp+network link 跳过expdp直接导入目标库

    impdp命令特殊用途,可以将数据库的一个用户迁移到另一台机器上的数据库的用户中.如果目标用户不存在,还可以对应的创建该用户.  快速的把A库上的用户迁移到B库上. 下面就来看一下命令格式: B库下执 ...

  3. 从库因为sql错误导致主从同步被中断的问题解决

    从库因为sql错误导致主从同步被中断的问题解决:show slave status\G;看lasterror:看延迟多少秒,正常情况下是没有延迟的. 跳过错误的那条sql:SET GLOBAL SQL ...

  4. Kettle定时抽取两个库中的两个表到目标库SYS_OPLOG表

     A库a表(红色为抽取字段): 关联用户表: B库b表(红色为抽取字段): 关联用户表  C目标库SYS_OPLOG表(c表) 利用kettle抽取A库a表(具体名称见上图),B库b表的上面红色框起来 ...

  5. linux下.a/.so/.la目标库区别

    在linux平台上编译时,常会遇到目标库的疑问,有静态库也有动态库,单个理解都不太难,但是对复杂的工程而言,一旦混合到一起去,对整个工程的理解和调用,将会造成很大困扰,本文就汇总这几种常见编译结果文件 ...

  6. android Choose library dependency 搜索不到目标库

    问题:Choose library dependency 搜索不到目标库,百度了一下,发现尽是废话,无解,反正就是升级ide,我是 android studio是2.3.3(网上说升级到3.+就好了, ...

  7. pt-archiver归档数据 源库和目标库是否会出现不一致

    背景 归档的表在源库和目标库都要存在 pt-archiver归档表的场景有:不删原表数据,非批量插入目标库:不删原表数据,批量插入目标库:非批量删除原表数据,非批量插入目标库:批量删除原表数据,批量插 ...

  8. (Oracle)关于blob转到目标库报ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值错误解决方案

    在数据抽取时,开发需要clob类型的数据,但是目标库类型是blob类型的,于是抽取的时候报错: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值错误 可能有以下几种原因: 可能有以下 ...

  9. mysql 从库执行insert失败导致同步停止

    服务配置:一主一从,版本都是 5.5 .主库配置了 binlog-do-db binlog-ignore-db 问题复述:运营人员发现,昨天的数据统计不对.数据分析服务查询的是从库的数据. 到tomc ...

  10. my16_sql_thread执行慢导致主从延迟高的一个情景

    现象:从库延迟高,查看slave status发现sql_thread执行语句的速度比主库慢,这样的延迟会一直高下去,下面是排查的一些过程1. 检查了从库的配置,磁盘的写入速度的确没有主库高2. io ...

随机推荐

  1. python 之列表(list)处理

    列表(list) 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可,一个列表中的数据类型可以各不相同,可以同时分别为整数.实数.字符串等基本类型,甚至是列表.元组.字典.集合以及其他自定 ...

  2. week_5

    Andrew Ng机器学习笔记---by Orangestar Week_5 重点:反向传播算法,backpropagation 1. Cost Function神经元的代价函数 回顾定义:(上节回顾 ...

  3. 精华推荐 |【深入浅出Sentinel原理及实战】「原理探索专题」完整剖析Alibaba微服务架构体系之轻量级高可用流量控制组件Sentinel(1)

    Sentinel是什么?不要概念混淆啊! 注意:本Sentinel与Redis服务Sentinel是两回事,压根不是一个概念,请大家不要混肴. Alibaba的Sentinel Sentinel是由阿 ...

  4. WCH以太网相关芯片资料总结

    网络产品线产品分类 1.接口控制类.CH395Q           http://www.wch.cn/search?t=all&q=395CH395LCH392F            h ...

  5. 一、对称加密(DES加密)

    一.DES简介DES是一种对称加密(Data Encryption Standard)算法.于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方法.一般密码长度为8个字节,其中5 ...

  6. [OpenCV实战]24 使用OpenCV进行曝光融合

    目录 1 什么是曝光融合 2 曝光融合的原理 3 代码与结果 4 参考 本教程中,我们将了解使用OpenCV的Exposure Fusion(曝光融合). 1 什么是曝光融合 曝光融合是一种将使用不同 ...

  7. 一文教会你mock(Mockito和PowerMock双剑合璧)

    作者:京东物流 杨建民 1.什么是Mock Mock有模仿.伪造的含义.Mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法.mock工具使用 ...

  8. BBS项目 未完待续

    项目开发基本流程 1.需求分析 2.架构设计 3.分组开发 4.提交测试 5.交付上线 创建项目配置 环境配置 TEMPLATES = [ { 'BACKEND': 'django.template. ...

  9. 一次JVM GC长暂停的排查过程

    作者:京东科技 徐传乐 背景 在高并发下,Java程序的GC问题属于很典型的一类问题,带来的影响往往会被进一步放大.不管是「GC频率过快」还是「GC耗时太长」,由于GC期间都存在Stop The Wo ...

  10. 基于WebSocket的实时消息传递设计

    目录 概述 整体架构 设计 流程设计 程序设计 WebSocketServer 概述 新增pom 新增配置类 创建websocket端点 WebSocketClient 概述 安装WebSocketS ...