环境11.2.0.4 linux6.9 RAC2节点,ogg版本Version 12.2.0.1.160823 OGGCORE_OGGADP.12.2.0.1.0_PLATFORMS_161019.1437

应用进程abend 观察报错信息,insert 虚拟列报错。

总结方法:

1.源端抽取进程,对表的列进行明确定义,抽取哪些列

2.目标端也对列进行明确定义

3.目标端应用需要应用源端定义列后的变更记录,因此可以说会丢失一部分的变更数据,或者重新初始化同步。

或者另外一种方法是源端删除虚拟列.但是目标端也会抛弃一部分数据类似。

目标端,应用进程修改
[oracle]$ ./ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 12.2.0.1. OGGCORE_12.2.0..0_PLATFORMS_151211.1401_FBO
Operating system character set identified as UTF-. 应用进程报错信息如下: view report rp02
2020-05-20 16:57:57  INFO    OGG-06510  Using the following key columns for target table hr.a: D_ID.
Exception in thread "main" oracle.goldengate.util.GGException: Unable to commit transaction, STATUS=ABEND, java.sql.SQLException: ORA-54013: 不允许对虚拟列执行 INSERT 操作 如下是应用进程参数信息
GGSCI (dsapdb26) 2> edit param rp02
REPLICAT rp02
getEnv (LD_LIBRARY_PATH)
TARGETDB LIBFILE libggjava.so SET property=dirprm/java.proes
GROUPTRANSOPS 10
MAXTRANSOPS 10
GETUPDATEBEFORES
MAP scott.a,TARGET hr.a;
MAP scott.b,TARGET hr.b,filter (@GETENV ('transaction', 'csn') > 498252132);
如下是源端抽取进程参数信息
GGSCI> view param exta
extract exta
tranlogoptions dblogreader
EXTTRAIL /ogg/ext/dirdat/ea
USERID ogg,PASSWORD xx_scott_passwd
TABLE scott.a ,keycols(R_ID); SQL> desc scott.a
Name Null? Type
----------------------------------------- -------- ----------------------------
R_ID NOT NULL VARCHAR2()
P_ID VARCHAR2()
······ 省略若干字段
SQL> desc hr.a
ERROR:
ORA-: object hr.a does not exist
GGSCI (dsapdb26) > info exta showch
Current Checkpoint (position of last record read in the data source):
Thread #:
Sequence #:
RBA:
Timestamp: -- ::37.000000
SCN: 1.775085393 ()
Redo File: Not Available

对报错的a表进行修改参数

思路:源端抽取参数添加表列的信息;

目标端应用参数添加表列对照信息;

源端抽取进程修改
GGSCI> edit param exta
TABLE scott.a,keycols(R_ID),cols(R_ID,P_ID······);
GGSCI> stop exta
GGSCI> start exta 目标端进程修改
GGSCI> edit param rp02
MAP scott.a(R_ID,P_ID,······) ,TARGET hr.a ,keycols(R_ID),COLMAP(R_ID=R_ID,P_ID=P_ID,······),filter (@GETENV ('transaction', 'csn') > 5070052689); 重启之后,发现a表无异常,但是应用进程的b表报错了,报错一致,也是无法对虚拟列进行insert操作!

对报错的b表进行修改参数

思路:源端抽取参数添加表列的信息;

目标端应用参数添加表列对照信息;

源端对抽取的列进行cols参数配置
GGSCI> edit param exta
TABLE scott.b,cols(D_ID,D_TYPE,LOG_xx······);
GGSCI> info exta showch
--找最小的
Current Checkpoint (position of last record read in the data source):
Thread #:
Sequence #:
RBA:
Timestamp: -- ::14.000000
SCN: 1.775699573 ()
Redo File: Not Available
Current Checkpoint (position of last record read in the data source):
Thread #:
Sequence #:
RBA:
Timestamp: -- ::14.000000
SCN: 1.775699561 ()
Redo File: Not Available
--目标端修改,修改前
MAP scott.b,TARGET hr.b (@GETENV ('transaction', 'csn') > );
修改后
MAP scott.b(D_ID,D_TYPE,LOG_······) ,TARGET hr.b,COLMAP(D_ID=D_ID,D_TYPE=D_TYPE,LOG_······),filter (@GETENV ('transaction', 'csn') > );
重启EXT抽取进程后,重启应用REP进程

OGG应用进程abend报错无法insert虚拟列的更多相关文章

  1. OGG投递进程报错无法open文件,无法正常投递

    1.1现象 之前有个客户遇到一个问题,OGG同步数据链路,突然有一天网络出现问题,导致OGG投递进程无法正常投递,无法写入目标端的该文件. 猜测是由于网络丢包等原因导致文件损坏,无法正常open,re ...

  2. 报错:无效的列类型: 1111;must be specified for all nullable parameters.

    org.springframework.jdbc.UncategorizedSQLException: Error setting null parameter. Most JDBC drivers ...

  3. [sql 注入] insert 报错注入与延时盲注

    insert注入的技巧在于如何在一个字段值内构造闭合. insert 报错注入 演示案例所用的表: MariaDB [mysql]> desc test; +--------+--------- ...

  4. PostgreSQL 大对象导出报错问题分析

    1.前言 在处理用户问题过程遇到一个问题.用户通过pg_dump导出 bytea 对象时,当行的大小超过 1G时,会报错: [v8r6c5b41@dbhost01 ~]$ sys_dump -t t1 ...

  5. thymeleaf Exception processing template "xxx": Exception parsing document: template="xxx", line 6 - column 3报错解决的几种方法

    我是在SpringBoot项目使用Thymeleaf作为模板引擎时报的错误 controller代码非常简单,如下所示: @RequestMapping("/abc") publi ...

  6. GoldenGate过程 abend,报错OGG-00868 ORA-02396: Exceeded Maximum Idle Time, Please Connect Again

    GoldenGate过程 abend,报错OGG-00868 ORA-02396: Exceeded Maximum Idle Time, Please Connect Again 参考原始: Gol ...

  7. INSERT INTO 语句的语法错误【 OLE报错,office终端执行SQL没有问题】

    表名,字段在代码执行之前一定要进行" [ 字段.表名 ] "中括号包裹,不然会报INSERT INTO 语句的语法错误! office终端没有报错的原因,应该是office在执行之 ...

  8. [eclipse]“Syntax error, insert "}" to complete”报错的解决方案

    背景:本人在网上学习java时,看到一段样例代码比较好,因此复制粘贴到eclipse中看看编译结果.结果eclipse报"Syntax error, insert "}" ...

  9. VirtualBox创建虚拟电脑、执行Genymotion模拟器报错

    当安装完Genynition关于Android应用的调试模拟器之后,在Genymotion执行的平台virtualBox:VirtualBox创建虚拟电脑.执行Genymotion模拟器报错: 错误卖 ...

随机推荐

  1. T-SQL字符串函数

    整理下MSSQL中有关时间的函数,博客记录之. ASCII 原型:ASCII ( character_expression ) 返回值:int 类型值 功能:返回输入字符串最左边的一个字符的ASCII ...

  2. flutter在2019年会有怎样的表现?

    2019独角兽企业重金招聘Python工程师标准>>> Flutter的趋势 在移动端,受成本和效率的驱使,跨平台一站式开发慢慢成为一个趋势.从Hybird,RN,WEEX,Flut ...

  3. Vant Weapp小程序蹲坑之使用card组件显示价格

    问题 在基于mpvue+Vant Weapp组件库实战过程中,问题越来越多.网络上所谓的"坑"总结,仅仅不过是其开发中所遭所遇之"坑"而已--估计后面的&quo ...

  4. 细数阿里云在使用 Docker 过程中踩过的那些坑

    昨天下午道哥在微信上丢给我一条新闻,看看,我们阿里云支持 Docker 企业版了.我打开一看,果然,阿里云发布了飞天敏捷版,开始支持企业级的 Docker 容器. 美国中部时间4月19日,阿里云在容器 ...

  5. AMD 开源照片级渲染引擎 Radeon ProRender

    除了Radeon Pro WX.Radeon Pro Solid State两款全新的专业显卡,AMD今天还宣布,Radeon ProRender渲染引擎即将开放源代码,开发人员可任意使用.AMD去年 ...

  6. Shiro(三):Spring-boot如何集成Shiro(下)

    上一篇文章介绍了shiro在spring-boot中通过filter实现authentication流程(通过设置filterMaps也可以达到authorization的目的):这篇文章主要介绍sp ...

  7. 网速慢?NO可能是路由器的原因?

    先排除DNS的问题:看这个! 为什么我家300M的网,而且wifi信号满格,还是网速很慢? 这时候不排除是路由器的原因! 第一步首先我们要知道自己家的网关IP: 什么是网关? 网关(Gateway)又 ...

  8. pycharm(破解教程)

    1.下载破解补丁 下载补丁文件 jetbrains-agent.jar  2.双击 pycharm-professional-2019.3.exe 安装 pycharm 如果你是刚下载的pycharm ...

  9. SpringCloudGateWay学习 之 从函数式编程到lambda

    文章目录 前言: 函数式编程: 什么是函数式编程: 函数式编程的特点 lambda表达式: 核心: 函数接口: 方法引用: 类型推断: 变量引用: 级联表达式跟柯里化: 前言: 这一系列的文章主要是为 ...

  10. metasploit payload运行原理浅析

    背景 最近在做一些msf相关的事情,今天听到免杀相关的,去查询了下相关资料. 第一个不能错过的就是cobalt strike作者早年写的metasploit-loader项目了,我看了项目源码,找了一 ...