Goldengate添加字段等操作同步实验

最近实验goldengate同步过程,遇到一些异常现象,出现了一些不能同步的情况。
可能是刚接触goldengate对其用法还不是很深入,也有可能就是goldengate的一些局限性,这还再深入研究。下面部署gg环境中没有使用DDL同步。(部署方法参照上一篇:Oracle goldengate Windows平台oracle-oracle单向复制)
源和目标的GG版本:OGGCORE_11.1.1.1.2_PLATFORMS_111004.2100

下面是实验记录结果:

SQL> desc dept
Name   Type         Nullable Default Comments
------ ------------ -------- ------- --------
DEPTNO NUMBER(2)                             
DNAME  VARCHAR2(14) Y                        
LOC    VARCHAR2(13) Y                        


实验1.添加字段
--在source,target分别修改表结构
Alter Table dept
Add  col Varchar2(10) Default 'a'

--在source修改两个字段,一个是旧字段,一个是新加的字段

SQL> Select * From dept;

DEPTNO DNAME          LOC           COL
------ -------------- ------------- ----------
    10 ACCOUNTING     NEW YORK      a
    20 RESEARCH       DALLAS        a
    30 SALES          CHICAGO       a
    40 OPERATIONS     BOSTON        a
    12 ticke          licz          a
   
--更新源数据
SQL> Update dept
   Set dname='database',col='c'
   Where deptno=11;
SQL> Commit;

SQL> Select * From dept;

DEPTNO DNAME          LOC           COL
------ -------------- ------------- ----------
    10 ACCOUNTING     NEW YORK      a
    20 RESEARCH       DALLAS        a
    30 SALES          CHICAGO       a
    40 OPERATIONS     BOSTON        a
    12 database       licz          c

--在目标端检查同步
SQL> Select * From dept;

DEPTNO DNAME          LOC           COL
------ -------------- ------------- ----------
    10 ACCOUNTING     NEW YORK      a
    20 RESEARCH       DALLAS        a
    30 SALES          CHICAGO       a
    40 OPERATIONS     BOSTON        a
    12 database       licz          a

--在源insert数据
Insert Into dept
Select 13,'hotel','licz','a' From dual;
Commit;

SQL> Select * From dept;

DEPTNO DNAME          LOC           COL
------ -------------- ------------- ----------
    10 ACCOUNTING     NEW YORK      a
    20 RESEARCH       DALLAS        a
    30 SALES          CHICAGO       a
    40 OPERATIONS     BOSTON        a
    12 database       licz          c
    13 hotel          licz          a

--在目标端检查同步
SQL> Select * From dept;

DEPTNO DNAME          LOC           COL
------ -------------- ------------- ----------
    10 ACCOUNTING     NEW YORK      a
    20 RESEARCH       DALLAS        a
    30 SALES          CHICAGO       a
    40 OPERATIONS     BOSTON        a
    12 database       licz          c
    13 hotel          licz          a

--同样实验delete操作同步情况,也是正常的。
   
结论:在对表添加字段时后,在源表新字段上的update操作不能同步,insert,delete操作同步正常。而且在源表执行delete trandata和add trandata操作(实验步骤省略)仍不能进行update操作的同步。

 


实验2.主备字段修改默认值:source,target

--修改源和目标表的默认值后,DML操作同步正常
Alter Table dept
Modify  col Varchar2(10) Default 'b';

 

实验3.修改主键(原主键和新主键名相同):source,target

--修改主键,DML操作同步正常
alter table EMP
Drop constraint PK_EMP;
 
alter table EMP
add constraint PK_EMP primary key (EMPNO,ename);


实验4.异构表构同步
当是使用不同表名,不相同表结构,但是表对应的字段类型相同时,源的insert,delete操作能够同步,而update操作则不能同步,如下表结构
源表:
create table region
( region number(3) primary key,
name varchar2(32)
);

目标表:
create table areacode
 ( code number(3) primary key,
  name varchar2(32)
);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值