OGG应用进程abend报错无法insert虚拟列
环境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虚拟列的更多相关文章
- OGG投递进程报错无法open文件,无法正常投递
1.1现象 之前有个客户遇到一个问题,OGG同步数据链路,突然有一天网络出现问题,导致OGG投递进程无法正常投递,无法写入目标端的该文件. 猜测是由于网络丢包等原因导致文件损坏,无法正常open,re ...
- 报错:无效的列类型: 1111;must be specified for all nullable parameters.
org.springframework.jdbc.UncategorizedSQLException: Error setting null parameter. Most JDBC drivers ...
- [sql 注入] insert 报错注入与延时盲注
insert注入的技巧在于如何在一个字段值内构造闭合. insert 报错注入 演示案例所用的表: MariaDB [mysql]> desc test; +--------+--------- ...
- PostgreSQL 大对象导出报错问题分析
1.前言 在处理用户问题过程遇到一个问题.用户通过pg_dump导出 bytea 对象时,当行的大小超过 1G时,会报错: [v8r6c5b41@dbhost01 ~]$ sys_dump -t t1 ...
- thymeleaf Exception processing template "xxx": Exception parsing document: template="xxx", line 6 - column 3报错解决的几种方法
我是在SpringBoot项目使用Thymeleaf作为模板引擎时报的错误 controller代码非常简单,如下所示: @RequestMapping("/abc") publi ...
- 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 ...
- INSERT INTO 语句的语法错误【 OLE报错,office终端执行SQL没有问题】
表名,字段在代码执行之前一定要进行" [ 字段.表名 ] "中括号包裹,不然会报INSERT INTO 语句的语法错误! office终端没有报错的原因,应该是office在执行之 ...
- [eclipse]“Syntax error, insert "}" to complete”报错的解决方案
背景:本人在网上学习java时,看到一段样例代码比较好,因此复制粘贴到eclipse中看看编译结果.结果eclipse报"Syntax error, insert "}" ...
- VirtualBox创建虚拟电脑、执行Genymotion模拟器报错
当安装完Genynition关于Android应用的调试模拟器之后,在Genymotion执行的平台virtualBox:VirtualBox创建虚拟电脑.执行Genymotion模拟器报错: 错误卖 ...
随机推荐
- Linux查看端口或pid使用路径
1. lsof -i:10010 查看10010端口的占用情况 命令返回结果: 2. netstat -lpn | grep 80 查看80端口服务端socket占用状况 3. ll /proc/26 ...
- 2019-2020-1 20199326《Linux内核原理与分析》第五周作业
第五周学习内容 庖丁解牛Linux内核分析第四章:系统调用的三层机制(上) Linux内核分析实验四 学到的一些知识 4.1用户态.内核态.中断 宏观上Linux操作系统的体系架构分为用户态和内核态 ...
- 聊聊flink的BlobStoreService
序 本文主要研究一下flink的BlobStoreService BlobView flink-release-1.7.2/flink-runtime/src/main/java/org/apache ...
- 写代码?程序猿?你不能不懂的八大排序算法的Python实现
信息获取后通常需要进行处理,处理后的信息其目的是便于人们的应用.信息处理方法有多种,通常由数据的排序,查找,插入,删除等操作.本章介绍几种简单的数据排序算法和高效的排序算法. 本章主要涉及到的知识点有 ...
- 图论--网络流--最大流--POJ 3281 Dining (超级源汇+限流建图+拆点建图)
Description Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, an ...
- 实现MapReduce
简介 当我们要统计数亿文本的词频,单个机器性能一般,况且是数亿级数据,处理是十分缓慢的,对于这样的任务,希望的是多台电脑共同处理,大幅度减少任务时间.联合多台电脑一起工作的系统就是分布式系统. 最近在 ...
- ELK+kafka日志收集分析系统
环境: 服务器IP 软件 版本 192.168.0.156 zookeeper+kafka zk:3.4.14 kafka:2.11-2.2.0 192.168.0.42 zookeeper+kaf ...
- Spring官网阅读(十六)Spring中的数据绑定
文章目录 DataBinder UML类图 使用示例 源码分析 bind方法 doBind方法 applyPropertyValues方法 获取一个属性访问器 通过属性访问器直接set属性值 1.se ...
- 什么情况下不能使用 Java 泛型
1. 前言 Java 1.5 引入了泛型来保证类型安全,防止在运行时发生类型转换异常,让类型参数化,提高了代码的可读性和重用率.但是有些情况下泛型也是不允许使用的,今天就总结一下编码中不能使用泛型的一 ...
- uCOS2014.1.8
目前uCOS中已经接触到的全局变量: OSTCBCur OSIntNesting OSPrioHighRdy 最高优先级任务 任哲编著<嵌入式实时操作系统uC/OS-II原理及应用> ...