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

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

时间:2024-02-19 19:58:58浏览次数:24  
标签:00 itpux01 ljc DML dblink RUNNING SQL ---------- OGG

目录

问题概述

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/18021825

相关文章

  • MogDB 学习笔记之 -- truncate 属于dml语句
    概念描述验证create语句、alter语句、truncate语句、drop语句是属于ddl还是dml测试验证1、环境准备修改log_statement参数miao=#showlog_statement;log_statement---------------none(1row)miao=#ALTERDATABASEmiaoSETlog_statementTOddl;ALTERDATABA......
  • 3.OGG常用的命令
    1.查看历史命令GGSCI(19c_p)8>hGGSCICommandHistory1:infoall2:lagext_demo3:lagextractextract4:lagextractext_demo5:infoall6:viewparamsext_demo7:viewparamsmgr8:h   GGSCI(19c_p)8> !  ......
  • 第二十天:mysql查询:DML、DDL、DQL
    一、DML语句DML:INSERT,DELETE,UPDATE1、INSERT语句功能:一次插入一行或多行数据语法INSERT[LOW_PRIORITY|DELAYED|HIGH_PRIORITY][IGNORE]  [INTO]tbl_name[(col_name,...)]  {VALUES|VALUE}({expr|DEFAULT},...),(...),...  [ONDUPLIC......
  • 2.OGG介绍
    1.简介:OracleGoldenGate(简称ogg),是一个企业级的数据复制工具,oracle将其定位为中间件软件。ogg使用模块化的进程结构,能够灵活的抽取和复制跨越多种拓扑结构(异构平台)的表数据,DML和DDL操作: 因为ogg的灵活性,支持数据的过滤,转化以及自定义处理特性,可以支持许多......
  • dotnet 接口的扩展方法 logger
    AddLogging的使用services.AddLogging(logBuilder=>{logBuilder.AddConsole();});AddLogging的实现publicstaticIServiceCollectionAddLogging(thisIServiceCollectionservices,Action<ILoggingBuilder>configure){//...}实现ILoggingBuilder的AddCo......
  • UVA10225 Discrete Logging 题解
    题目传送门前置知识大步小步算法题意多组询问,每次询问依次给定\(p,a,b\),求\(a^{x}\equivb\pmod{p}\)的最小非负整数解,其中\(a,p\)互质。解法BSGS板子题,不做过多介绍。貌似本题比P3846[TJOI2007]可爱的质数/【模板】BSGS和BZOJ3239DiscreteLogging数据较强......
  • OGG-00303 Problem at line 37. Expecting file, table, or record definition: TimeZ
    由于源端和目标端表结构不一致(列顺序有差异),因此使用def文件来同步。在源端配置好def文件后,启动复制进程报错,具体信息如下:2024-01-3111:24:16ERROROGG-00303OracleGoldenGateDeliveryforOracle,r_bszj.rp:Problematline37.Expectingfile,table,orrecorddefin......
  • Mygin中间件优化及logger日志中间件
    本篇是mygin的第七篇,参照gin框架,感兴趣的可以从Mygin第一篇开始看,Mygin从零开始完全手写,在实现的同时,带你一窥gin框架的核心原理实现。目的中间件Middleware优化默认log日志中间件在上篇Mygin实现中间件Middleware中间件Middleware很生硬,完全依赖循环,如果某个中间件想要c......
  • python日志模块logging
    示例代码#导入日志模块importloggingimportlogging.configfromconfigimportLOG_DIR,settingsdefconfig_logging():#定义日志配置方法config_dict={#定义日志配置字典'version':1,'disable_existing_loggers':False,'......
  • SQL通用语言--DML(数据操作语言)
    SQL通用语言--DML(数据操作语言)DML-介绍DML英文全称是DataManipulationLanguage,用来对数据库中表的数据记录进行增删改的操作。添加数据(INSERT)修改数据(UPDATE)删除数据(DELETE)DML-添加数据给指定字段添加数据INSERTINTO表名(字段名1,字段名2...)VALUES(......