Oracle GoldenGate 系列:Extract 进程遇长事务执行 Forcestop 引发的惨案

本文介绍了在Oracle GoldenGate中遇到的问题,由于执行forcestop命令停止Extract进程时碰到了长事务,导致在重启后出现OGG-00446错误,无法正常启动。问题根源在于缺少必要的归档日志,同时长事务未完成。解决方案包括重新初始化、恢复归档和按时间点跳过事务。文章详细分析了问题原因,并提供了处理过程和后续的运维建议,强调了数据库长事务监控和归档日志管理的重要性。
摘要由CSDN通过智能技术生成

一、问题描述:

2013年4月14日中午12点左右生产环境执行数据库版本升级期间根据需要停止XX1库和XX2库OGG 同步抽取进程时遇长事务,无法用正常命令停止,执行 forcestop 后重启进程报 OGG-00446 错误,无法启动。错误如下:

2013-04-14 19:30:28  ERROR  OGG-00446  Opening ASM file+FRA/bjschxsb/1_7125_796652962.dbf in DBLOGREADER mode: (308) ORA-00308: ca

nnot open archived log'+FRA/bjschxsb/1_7125_796652962.dbf'

ORA-17503: ksfdopn:2 Failed toopen file +FRA/bjschxsb/1_7125_796652962.dbf

ORA-15173: entry'1_7125_796652962.dbf' does not exist in directory 'bjschxsb'

Not able to establish initialposition for sequence 7125, rba 339291664.

2013-04-14 19:30:28  ERROR  OGG-01668  PROCESS ABENDING.

 

二、问题原因:

XX1库和XX2库的 Extract 进程在执行 forcestop 停止前(瞬间)正在处理既未提交也未回滚的长时间运行事务,重新启动 Extract 进程后需要执行 Extract 进程恢复。

1、XX1库

停止XX1库Extract 进程时,正在处理的长事务为:

2013-04-1411:51:46  WARNING OGG-01027  Oracle GoldenGate Capture for Oracle,esb_cx7.prm:  Long Running Transaction:XID 561.10.312

84,Items 0, Extract ESB_CX7, Redo Thread 1, SCN 3098.1568409621 (13307377092629),Redo Seq #7125, Redo RBA 339291664.

     截止目前该事务在数据库中仍在进行:

SQL> select t.addr,t.XIDUSN,t.XIDSLOT,t.XIDSQN,t.START_DATEfrom  gv$transaction t;

ADDR                XIDUSN    XIDSLOT     XIDSQN START_DATE

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

070000084724BB90       561         10      31284 09-APR-13

SQL> select t.PREV_SQL_ID,t.SQL_ID from gv$session t wheretaddr='070000084724BB90';

PREV_SQL_ID   SQL_ID

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

9m7787camwh4m

SQL> select sql_text from gv$sqltext t where t.SQL_ID = '9m7787camwh4m';

SQL_TEXT

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

begin :id := sys.dbms_transaction.local_transaction_id; end;

begin :id := sys.dbms_transaction.local_transaction_id; end;

begin :id := sys.dbms_transaction.local_transaction_id; end;

begin :id := sys.dbms_transaction.local_transaction_id; end;

该事务是由一台 IP 地址为 162.16.220.70 的机器,通过 PL/SQL dev 工具于 2013 年 4 月 9 日发起,使用数据库用户是HX_SJZ,该事务至今未提交也未回滚。需要注意的是 HX_SJZ 用户权限已于 2013 年

4 月 1日开始收回,该主机使用该用户从 3 月 28 日用该用户建立的 session 至今未断开。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值