您的位置:首页 > 编程语言 > Go语言

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

2013-01-06 09:18 197 查看
最近实验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)

);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: