Oracle数据库索引失效,引起GoldenGate异常

本文详细记录了一次GoldenGate数据库在处理大量数据时遇到的索引异常问题,包括错误日志解析、问题分析、处理步骤及最终故障排除的过程。主要涉及了如何识别和解决数据库索引不可用状态引发的进程崩溃问题,通过重建索引、清理discard文件、重启rep进程等操作成功解决了故障。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天客户的GoldenGate出问题了,打电话过来咨询,根据客户描述的问题现象和日志的分析,初步判断是数据库索引异常引起的故障,以下是问题的分析和处理描述。

    问题描述:

  2010-02-01 17:19:28  GGS ERROR    103  Discard file (./dirrpt/repsz.dsc) exceeded max bytes (10000000).

2010-02-01 17:19:28  GGS ERROR    190  PROCESS ABENDING.

   Discard文件摘录:

    ORA-01502: index a.IDX_SB_SBXX_SSSQ_QZ' or partition of such index is in unusable state, SQL <UPDATE "a"."DJ_YZCWSBQC_CWBB" SET "NSRDZDAH" = :a21,"ND" = :a22,"YF" = :a23,"SSSQ_Q" = :a24,"SSSQ_Z" = :a25,"CWBBZL_DM" = :a26,"SBQX" = :a27,"YQSBQX" = :a28,"SBRQ" = :a29,"SBFS_DM" = :a30,"HY_DM">
Operation failed at seqno 1816 rba 153098124
Discarding record on action DISCARD on error 1502
Problem replicating CTAIS2.SB_SBXX to CTAIS2.SB_SBXX
Error (1502) occurred with insert record (target format)...
*

    问题分析:

    看到错误描述,又是一个discard文件写满进程abend的问题,这回是什么原因引起大量的写discard的操作的呢?通过分析discard文件发现大量的如下错误信息:or partition of such index is in unusable state。

看来是数据库的索引出现故障了,拿我们就先从处理数据库故障开始。

 

    问题处理:

    1、参考Oracle官方给出的处理这个ora类型错误的建议:

ORA-01502: index 'string.string' or partition of such index is in unusable state
Cause: An attempt has been made to access an index or index partition that has been marked unusable by a direct load or by a DDL operation
Action: DROP the specified index, or REBUILD the specified index, or REBUILD the unusable index partition

    2、我们重建了这个有问题的索引

    3、清空已经写满信息的discard文件

    4、重新启动rep进程,故障排除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值