首页 > 其他分享 >目标库DML 堵塞(dblink)导致OGG延迟

目标库DML 堵塞(dblink)导致OGG延迟

时间:2023-02-28 16:24:43浏览次数:34  
标签:00 itpux01 ljc DML dblink RUNNING SQL ---------- OGG

[[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

```

# 参考文档

标签:00,itpux01,ljc,DML,dblink,RUNNING,SQL,----------,OGG
From: https://www.cnblogs.com/xinxin1222/p/17164743.html

相关文章

  • Python中logging模块用法
    一、低配logging日志总共分为以下五个级别,这个五个级别自下而上进行匹配debug-->info-->warning-->error-->critical,默认最低级别为warning级别。1.v1importlogging......
  • 路飞-day2——路飞后台配置之封装logger、路飞后台配置之封装全局异常、路飞台配置之
    目录一、路飞后台配置之封装logger配置步骤步骤一:复制代码(之前学过的日志字典)到配置文件中(dev.py)步骤二:在utils新建common_logger.py,写入下方代码,得到日志对象步骤三:在......
  • dblink概述及创建示例
    dblink概述dblink是定义一个数据库到另一个数据库的路径的对象,dblink允许你查询远程表及执行远程程序。在任何分布式环境里,database都是必要的。另外要注意的是dblink是单......
  • logging
    记录器Loggers创建日志记录处理器Handlers将日志记录发送到适当的目标过滤器Filters确定要输出的日志记录格式器Formatters最终输出中日志记录的样式记录器对象......
  • Zabbix You do not have the SUPER privilege and binary logging is enabled
    背景:服务器:LinuxCentos7服务版本:MySQL8.0,zabbix-proxy6.0事件:在执行 systemctlrestartzabbix-proxy.service报错Jobforzabbix-proxy.servicefailedbecausethe......
  • DDL和DML的补充
    ​ 【1】sql展示: --创建表:createtablet_student(snoint(6)primarykeyauto_increment,snamevarchar(5)notnull,sexchar(1)......
  • DDL和DML的补充
    ​ 【1】sql展示: --创建表:createtablet_student(snoint(6)primarykeyauto_increment,snamevarchar(5)notnull,sexchar(1)......
  • DML_添加数据;DML_修改,删除数据;DDL_修改,删除数据库表
    ​ 注意事项int 宽度是显示宽度,如果超过,可以自动增大宽度int底层都是4个字节时间的方式多样 '1256-12-23' "1256/12/23" "1256.12.23"字符串不区分单引号和......
  • DML_添加数据;DML_修改,删除数据;DDL_修改,删除数据库表
    ​ 注意事项int 宽度是显示宽度,如果超过,可以自动增大宽度int底层都是4个字节时间的方式多样 '1256-12-23' "1256/12/23" "1256.12.23"字符串不区分单引号和......
  • DDL_DML_创建数据库表
    ​ 【1】认识数据库表表(Table)是数据库中数据存储最常见和最简单的一种形式,数据库可以将复杂的数据结构用较为简单的二维表来表示。二维表是由行和列组成的,分别都包含着......