先来看下报错ggserr.log:

2016-12-22 04:48:52  WARNING OGG-02544  Unhandled error (ORA-26787: The row with key ("SYNC_ID") = (bd7a9e64-0301-4cbf-bc10-9a8c0a231fc3) does not exist in table M

SP.SYNC

ORA-01403: no data found) while processing the record at SEQNO 876, RBA 510082482 in Integrated mode. REPLICAT will retry in Direct mode.

2016-12-22 04:48:52  WARNING OGG-01154  SQL error 1403 mapping MSP.SYNC to MSP.SYNC OCI Error ORA-01403: no data found, SQL <UPDATE "MSP"."SYNC" x SET x."START_DAT

ESTAMP" = :a1,x."END_DATESTAMP" = :a2,x."STATUS_IND" = :a3,x."ERROR_MESSAGE" = :a4,x."LAST_SYNC_OFFSET" = :a5,x."LAST_SYNC_DATESTAMP" = :a6,x."USER_DEVICE_ID" = :a

7,x."CREATE_DATE" = :a8,x."UPDATE_DATE" = :a9,x."NIKE_PLUS_USER_ID" = :a10,x."UPM_USER_ID" = :a11,x."SYNC_RETRY_NUM" = :a12,x."APP_ID" = :a13 WHERE x."SYNC_ID" = :

b0>.

2016-12-22 04:48:52  WARNING OGG-01003  Repositioning to rba 510051955 in seqno 876.

2016-12-22 04:48:52  ERROR   OGG-01296  Error mapping from MSP.SYNC to MSP.SYNC.

Report at 2016-12-22 04:48:56 (activity since 2016-12-22 00:01:00)

From Table MSP.SYNC to MSP.SYNC:

#                   inserts:    203453

#                   updates:     73471

#                   deletes:         0

       #                  discards:        68 discard的记录有68条,是不是这68个记录都不符合要求还是第一个记录不符合要求,但这些是一个整体的事务,所以先去dirrpt里面看下。

From discard file:

OCI Error ORA-01403: no data found, SQL <UPDATE "MSP"."SYNC" x SET x."START_DATESTAMP" = :a1,x."END_DATESTAMP" = :a2,x."STATUS_IND" = :a3,x."ERROR_MESSAGE" = :a4,x

."LAST_SYNC_OFFSET" = :a5,x."LAST_SYNC_DATESTAMP" = :a6,x."USER_DEVICE_ID" = :a7,x."CREATE_DATE" = :a8,x."UPDATE_DATE" = :a9,x."NIKE_PLUS_USER_ID" = :a10,x."UPM_US

ER_ID" = :a11,x."SYNC_RETRY_NUM" = :a12,x."APP_ID" = :a13 WHERE x."SYNC_ID" = :b0>

Aborting transaction on /gg/app/ggadmin/product/12.1.2.1.0/dirdat/replicate/pdsp/r1 beginning at seqno 876 rba 510051955

error at seqno 876 rba 510082482

Problem replicating MSP.SYNC to MSP.SYNC

Record not found

Mapping problem with compressed update record (target format)...

*

SYNC_ID = bd7a9e64-0301-4cbf-bc10-9a8c0a231fc3

…………

Continuing to discard records up to the last discarded record from action ABEND

Operation discarded from seqno 876 rba 510051955

Aborted compressed update from MSP.SYNC to MSP.SYNC (target format)...

*

SYNC_ID = f00934c3-3c04-4928-ae90-b2a01e0c7572

Operation discarded from seqno 876 rba 510052452

Aborted compressed update from MSP.SYNC to MSP.SYNC (target format)...

*

SYNC_ID = 206fb814-cd8d-4add-9b06-d8e4fecf8976

选了discard file前面部分,后面还有很多record就不一一看了。

先来看报错,说是记录不存在。

于是先在BI目标库看看,

SQL> select sync_id from msp.sync where sync_id in ('bd7a9e64-0301-4cbf-bc10-9a8c0a231fc3','206fb814-cd8d-4add-9b06-d8e4fecf8976','f00934c3-3c04-4928-ae90-b2a01e0c7572');

SYNC_ID

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

206fb814-cd8d-4add-9b06-d8e4fecf8976

f00934c3-3c04-4928-ae90-b2a01e0c7572

可见第一条记录的确不存在,那源库存在吗?

源库PDSP:

SQL> select sync_id from msp.sync where

2  sync_id in ('bd7a9e64-0301-4cbf-bc10-9a8c0a231fc3','f00934c3-3c04-4928-ae90-b2a01e0c7572','206fb814-cd8d-4add-9b06-d8e4fecf8976','3346821d-40e2-4ab8-a650-a68ffd66e9b2');

SYNC_ID

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

206fb814-cd8d-4add-9b06-d8e4fecf8976

3346821d-40e2-4ab8-a650-a68ffd66e9b2

bd7a9e64-0301-4cbf-bc10-9a8c0a231fc3

都存在

那么就得insert这条不存在的记录到BI里面取,然后起R1_SP,看看还有造成abended的记录吗(因为这一个事务包含着68条记录,为什么能确认这是一个事务,可以logdump进去根据事务标识符判断,这里就略过了)

Bi遗失的记录在源库查询:

SQL> select * from msp.sync where sync_id='bd7a9e64-0301-4cbf-bc10-9a8c0a231fc3';

SYNC_ID                                  START_DAT END_DATES STATUS_IND

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

ERROR_MESSAGE

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------LAST_SYNC_OFFSET LAST_SYNC USER_DEVICE_ID                           CREATE_DA UPDATE_DA NIKE_PLUS_USER_ID                        UPM_USER_ID                        SYNC_RETRY_NUM     APP_ID

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

bd7a9e64-0301-4cbf-bc10-9a8c0a231fc3     11-OCT-16                    0

proc_fuelband_wrapperclass sets status_ind to 0.

0 01-JAN-70 e3659704-686e-4e25-9185-41e67aef57eb     11-OCT-16 22-DEC-16 b033e11a-a94a-4fc7-b153-c12f720a8278     9745824936                              0 335

可以在toad上查找这条记录,然后导出insert格式的语句,如下:

 

会生成如下:

SET DEFINE OFF;

Insert into MSP.SYNC

(SYNC_ID, START_DATESTAMP, END_DATESTAMP, STATUS_IND, ERROR_MESSAGE,

LAST_SYNC_OFFSET, LAST_SYNC_DATESTAMP, USER_DEVICE_ID, CREATE_DATE, UPDATE_DATE,

NIKE_PLUS_USER_ID, UPM_USER_ID, SYNC_RETRY_NUM, APP_ID)

Values

('bd7a9e64-0301-4cbf-bc10-9a8c0a231fc3', '11-OCT-16', '', '0', 'proc_fuelband_wrapperclass sets status_ind to 0.',

'0', '01-JAN-70', 'e3659704-686e-4e25-9185-41e67aef57eb', '11-OCT-16', '22-DEC-16',

'b033e11a-a94a-4fc7-b153-c12f720a8278', '9745824936', '0', '335');

COMMIT;

然后BI库跑一下,然后起R1_SP即可。

另一个操作版本(不建议):

没插数据,直接加HC参数,直接起,但是BI库却始终看不到这条记录。因为HC已经把这条记录给skip了。

但是我记得HC参数对于update会转换成insert语句,却没看到这条记录也就说明没转换。

所以还得去看看官方文档对于HC在各个场景下的策略。

如下就是等到R1_SP都AT EOF了,都没看到这条记录。

send r1_sp status

Sending STATUS request to REPLICAT R1_SP ...

Current status: At EOF

Sequence #: 876

RBA: 518830790

0 records in current transaction

SQL> select * from msp.sync where sync_id='bd7a9e64-0301-4cbf-bc10-9a8c0a231fc3';

no rows selected

SQL> /

no rows selected

简单的案例想说明的就是:

In world of Golden Gate you can do anything only make sure that you’re not losing any transaction or record.

goldengate abended with no data found的更多相关文章

  1. Track 造成Goldengate abended的那条record

    Email收到了这样的报错: 2016-12-07 02:52:22  WARNING OGG-01004  Aborted grouped transaction on 'MSP.USER_ACTI ...

  2. 搭建GoldenGate的单向复制环境

    配置环境: 建议在相同版本OGG(即Oracle GoldenGate)之间进行复制,我在这里之所以选择不同版本的OGG,便于后续的比较学习. 一.准备OGG的运行用户 在这里,我直接使用oracle ...

  3. goldengate一些参数整理

    转自:http://blog.csdn.net/lemontree1123/article/details/46603549 manager参数: AUTOSTART:指定在mgr启动时自动启动那些进 ...

  4. goldengate单向复制文档

    1:实验环境 2:实验步骤 --下面的2.1-2.2步骤,都需要在源端和目标端分别执行. 2.1:准备工作 2.1.1 建表空间 create tablespace ogg datafile '/u0 ...

  5. GoldenGate实施步骤

    一.GoldenGate实施环境 source database:oracle 11.2.0.3 target  database:oracle 11.2.0.3 需要配置的进程如下: source ...

  6. 配置Oracle GoldenGate安全性

    本章介绍如何配置Oracle GoldenGate安全性. 本章包括以下部分: Overview of Oracle GoldenGate Security Options Encrypting Da ...

  7. 76 道 Oracle Goldengate 面试问题

    基础 12c新特性 性能 Troubleshoot 其它 1. Oracle Goldengate 支持部署到哪些拓扑? GoldenGate supports the following topol ...

  8. oracle goldengate 远程捕获和投递

    很早之前,OGG只支持部署在数据库主机上,这叫本地化部署.而现在OGG支持远端部署,即OGG软件不安装在数据库主机上,而是安装在单独的机器上,负责数据抽取和投递. 这样做的好处: l 易于管理 - 在 ...

  9. goldengate一些參数整理

    manager參数: AUTOSTART:指定在mgr启动时自己主动启动那些进程. AUTOSTART ER * AUTOSTART extract extsz  AUTORESTART:指定在mgr ...

随机推荐

  1. 相克军_Oracle体系_随堂笔记011-事物

    数据库主要实现的功能无非是以下三点: ①数据的一致性, ②数据的安全, ③数据的优化.   事物主要影响数据的一致性. 1.事务的基本概念    一组DML语句    insert.delete.up ...

  2. 4.Struts2转向类型详解

    struts2中提供了多种视图转向类型,类型由type属性指定,如: dispatcher:请求转发(默认值) redirect:重定向到页面 redirectAction:重定向到Action pl ...

  3. Android之使用个推实现三方应用的推送功能

    PS:用了一下个推.感觉实现第三方应用的推送功能还是比较简单的.官方文档写的也非常的明确. 学习内容: 1.使用个推实现第三方应用的推送.      所有的配置我最后会给一个源代码,内部有相关的配置和 ...

  4. Sql Server之数据类型详解

      数据类型是一种属性,用于指定对象可保存的数据的类型,SQL Server中支持多种数据类型,包括字符类型.数值类型以及日期类型等.数据类型相当于一个容器,容器的大小决定了装的东西的多少,将数据分为 ...

  5. 微信小程序,我的英雄列表

    最近微信小程序炒得火热,就跟成都的这个房价一样.昨天我也尝试了一下,做了一个自己的英雄列表.今天将自己的制作过程记录于此. 1.下载微信开发者工具 官网链接:https://mp.weixin.qq. ...

  6. WPF老矣,尚能饭否——且说说WPF今生未来(中):策略

    本文接上文<WPF老矣,尚能饭否——且说说WPF今生未来(上):担心>继续. “上篇”中部分精彩的点评: 虽然WPF不再更新了,但是基于WPF的技术还是在发展着,就比如现在的WinRT,只 ...

  7. Openfire 4.1.0

    http://www.igniterealtime.org/downloads/index.jsp 服务器端口 接口 端口   类型 描述 所有的地址 5222 客户端到服务器 客户端使用标准端口连接 ...

  8. 【转】App开放接口api安全性—Token签名sign的设计与实现

    前言 在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些接口需要进行身份的认证,那么这就需要用户提供一些信息,比如用户名密码等, ...

  9. php实现设计模式之 工厂方法模式

    <?php /* * *工厂方法模式,创建型模式 定义一个用于创建对象的工厂接口,让子类决定实例化哪一个类.Factory Method使用一个类的实例化延迟到其子类 * * 四个角色: * 工 ...

  10. git的诞生

    Git的诞生   很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了. Linus虽然创建了Linux,但Linux的壮大是靠全世 ...