测试环境:

源端操作系统:rhel5.6

目标端操作系统:windows2008 R2

源和目标使用的数据版本均为:11.2.0.4.0

一、先模拟问题现象

源和目标端搭建好OGG软件和oracle数据库(搭建过程略)

源端测试用户test

目标端测试用户test1

(1)首先源和目标建表(源表和目标表第二和第三字段交换顺序):

源:create table test.test7(col1 int, col2 int, col3 int);

目标:create table test1.test7(col1 int, col3 int, col2 int);

(2)源和目标端启动OGG进程,在源端插入记录

insert into test.test7 values(1,2,3);

commit;

对比数据发现,OGG默认同步表是按照列的顺序来的,而不是按照列名来对应。

二、这个问题要解决有两种办法:

1、使用COLMAP方法指定列,这个方法可以在目标端的replicat进程上配置

本例中目标端的replicat进程名称为:rep1

edit param rep1   --修改目标端rep1进程

replicat rep1

--setenv (NLS_LANG = 'SIMPLIFIED CHINESE_CHINA.AL32UTF8')

--setenv (NLS_LANG = 'SIMPLIFIED CHINESE_CHINA.ZHS16GBK')

--setenv (NLS_LANG = 'SIMPLIFIED AMERICAN_AMERICA.ZHS16GBK')

setenv (ORACLE_SID = ORCL)

USERIDAlias wallettest

--userid goldengate, password goldengate

reperror default,abend

--DDL include mapped

--ddloptions report

--DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 5

discardfile c:\ogg\dirrpt\rep1.dsc,append, megabytes 100

WILDCARDRESOLVE DYNAMIC

assumetargetdefs

dynamicresolution

--修改这里的map参数,添加colmap指定列的对应规则

map test.test7, target test1.test7, colmap(usedefaults, col2=col3, col3=col2);

--map test.test7, target test1.test7;

重启目标端rep1进程,在源端测试插入数据,发现列对应关系正常。

2、该问题还可以使用另一种方法实现,通过生成定义文件来实现

1)先在OGG命令行下生成defgen配置参数

ggsci>edit param defgen

DEFSFILE /home/oracle/ogg/dirdef/test.def

USERID goldengate, PASSWORD goldengate

TABLE test.test7;

2)退出OGG命令行,在OGG软件根目录生成defgen.prm定义文件。

./defgen paramfile dirprm/defgen.prm

查看定义文件,会发现相关表结构信息,将该文件传递到目标端的c:/ogg/dirdef目录下

3)修改目标端rep1进程参数

replicat rep1

--setenv (NLS_LANG = 'SIMPLIFIED CHINESE_CHINA.AL32UTF8')

--setenv (NLS_LANG = 'SIMPLIFIED CHINESE_CHINA.ZHS16GBK')

--setenv (NLS_LANG = 'SIMPLIFIED AMERICAN_AMERICA.ZHS16GBK')

setenv (ORACLE_SID = ORCL)

USERIDAlias wallettest

--userid goldengate, password goldengate

reperror default,abend

--DDL include mapped

--ddloptions report

--DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 5

discardfile c:\ogg\dirrpt\rep1.dsc,append, megabytes 100

WILDCARDRESOLVE DYNAMIC

--这里注释assumetargetdefs参数,添加SOURCEDEFS参数

--assumetargetdefs

SOURCEDEFS c:\ogg\dirdef\test.def

dynamicresolution

--map test.test7, target test1.test7, colmap(usedefaults, col2=col3, col3=col2);

--将map参数复原

map test.test7, target test1.test7;

4)重启目标端rep1进程,然后在源端插入测试数据,发现数据同步正常。

oracle指定源位置怎么弄,ORACLE Goldengate测试解决源端和目标端表结构字段位置不同的2种实现方法...相关推荐

  1. 【INS-30014】无法检查指定的位置是否位于CFS上的解决办法

    安装oracle数据库过程中,出现[INS-30014]无法检查指定的位置是否位于CFS上的解决办法如下: 安装过程中,选择 "仅安装数据库软件",在安装成功后,使用DBCA工具创 ...

  2. oracle产品清单位置无效,[急]oracle打patch出错,求助!!

    错误信息如下,我的oracle home为/usr/u02/app/oracle/product/10.2.0/db_1/,为什么主产品目录显示为主产品清单: /u01/app/oracle/oraI ...

  3. Oracle 12c 能否在2小时内完成一张14亿条记录的表结构字段类型变更

    原文链接:https://www.modb.pro/db/22757 概述 前面分享过Oracle大表在线修改的脚本(在线重定义),经过几轮的测试发现,都存在些缺陷,效率始终不是很满意.这次把索引和统 ...

  4. oracle指定用户SID,如何修改oracle SID

    问题描述:我以前默认的 ORACLE_SID 是orcl ,现在我想做数据同步, 必须的有不同的 ORACLE_SID ,以便区分开来. 现在仅需要简单的几个步骤就可以修改好ORACLE_SID: 1 ...

  5. linux7提示软件安装源位置不对,详解 RHEL7.1 yum源配置与软件安装

    导读 Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自 ...

  6. oracle ogg常用指令,OGG(ORACLE GOLDENGATE)使用手册

    OGG(ORACLE GOLDENGATE)使用手册(图中涉及工作,未贴,见谅) 一.OGG原理 OGG是一种基于日志的结构化数据复制软件,通过捕获源数据库online redo log (在线重做日 ...

  7. ORACLE 源端ogg同步到mysql目标端

    source源端 oracle 11.2.0.4 ogg12c ip:10.200.3.193 系统centos 7.1 1. 创建source表和一些初始化数据 su - oracle sqlplu ...

  8. oracle tns 代理配置_OGG实现Oracle到MySQL数据平滑迁移

    技术分享 | 使用OGG实现Oracle到MySQL数据平滑迁移 - 爱可生开源社区​opensource.actionsky.com 一.OGG概述 OGG全称为Oracle GoldenGate, ...

  9. ogg oracle 到mysql_借助OGG完成Oracle到MySQL的数据迁移

    现在有个任务是需要把Oracle的数据迁移到MySQL,因为就涉及到了几个表,所以我最先想到了使用spool把Oracle的数据导成txt文件,然后再load 进去MySQL.非常遗憾的是,我的有一个 ...

最新文章

  1. 【晒出你的第83行代码】踌躇满志的三位高中生,以敬畏之心踏上了代码征程...
  2. java配置常量_Java构建时间常量配置
  3. 利用logistic回归构建申请信用评级案例
  4. python 多线程 线程如何获得返回值 (重写threading.Thread类)
  5. java 生成无重复 随机数
  6. 社区 正式发布了跨平台的 CoreWCF 0.1.0 GA
  7. volatile用法
  8. 为什么Linux不需要碎片整理?
  9. Web前端开发——BAT面试题汇总及答案01
  10. cleanmymac 4.2_市委刚刚批准:11月1号立即执行! 农业银行存款利率4.2%,1万元存1年,有多少利息?...
  11. cif判断字符串相等_leetcode 86 扰乱字符串(c++)
  12. python学习--面向过程程序设计实例
  13. “公益AI之星”挑战赛-新冠疫情相似句对判定大赛
  14. 统计学习方法学习笔记一
  15. matlab车标识别,MATLAB车辆标识识别技术研究
  16. 谈谈培训机构的“骗局“给新人一些建议
  17. 天津美术学院2021级专升本新生报到前后相关要求
  18. 【人月神话】第一章:焦油坑
  19. VB 6.0 如何在64位操作系统下运行!
  20. ESP8266EX 串口WIFI无线模块

热门文章

  1. SAP Cloud SDK for JavaScript 概述
  2. SAP Fiori Application Generator 在 Visual Studio Code 启动时遇到的错误消息
  3. SAP Cloud for Customer Work Center(工作中心)的实现源代码
  4. build.gradle里dependencies标签页的实现原理
  5. Java线程同步的一些例子
  6. 如何在S/4HANA里创建Custom Business object并实现自定义逻辑
  7. 如何用ABAP代码的方式在短时间内批量生成大量订单数据用于性能测试
  8. SAP CRM WebClient UI上note下拉列表里类型的过滤逻辑
  9. 使用Hybris Commerce User API读取用户信息时,电话字段没有返回
  10. 在SAP WebIDE里开发一个React component