Linux下GoldenGate单机双向同步

Linux下GoldenGate单机双向同步

上节实现了Linux系统中数据从scott.test_table到haishu.test_table的单向同步。本节在上节的基础上实现数据从haishu.test_table到scott.test_table的同步。这样就实现了数据在scott.test_table和haishu.test_table之间的双向同步。

 

一、配置抽取进程

GGSCI (localhost) 1> add extract ext2,tranlog, begin now

EXTRACT added.

 

 

GGSCI (localhost) 2> add exttrail /u01/ogg/dirdat/hs, extract ext2

EXTTRAIL added.

这里add exttrail /u01/ogg/dirdat/hs, extract ext2表示通过ext2进程把数据库中的数据抽取到本地的/u01/ogg/dirdat/hs文件中。

hs是haishu的简称,代表数据要从haishu.test_table中同步到scott.test_table中。当然也可以用别的字符,不过建议使用有意义的字符。

exttrail表示本地。若要把数据抽取到远程机器上,应使用“add rmttrail……”句式。

 

编辑抽取进程的参数:

GGSCI (localhost) 3> edit params ext2

 

在新打开的/u01/ogg/dirprm/ext2.prm中输入以下内容并保存退出

extract ext2

userid ogg,password oracle

rmthost 127.0.0.1,mgrport 7809

rmttrail /u01/ogg/dirdat/hs

dynamicresolution

table haishu.test_table;

 

 

二、配置复制进程

GGSCI (localhost) 4> add replicat rep2,exttrail /u01/ogg/dirdat/hs, checkpointtable ogg.checkpoint

REPLICAT added.

这个句子表示从本机的/u01/ogg/dirdat/hs中读取数据,并通过rep2进程把这些数据复制到数据库中。ogg.checkpoint是rep2的容器表。

 

编辑复制进程参数

GGSCI (localhost) 5> edit params rep2

 

在新打开的/u01/ogg/dirprm/rep2.prm中输入如下内容并保存退出

replicat rep2

userid ogg,password oracle

assumetargetdefs

discardfile /u01/ogg/dirdat/rep2_discard.txt,append

map haishu.test_table, target scott.test_table

RESOLVECONFLICT (UPDATEROWEXISTS, (DEFAULT, OVERWRITE))

RESOLVECONFLICT (INSERTROWEXISTS, (DEFAULT, OVERWRITE))

RESOLVECONFLICT (DELETEROWEXISTS, (DEFAULT, OVERWRITE))

RESOLVECONFLICT (UPDATEROWMISSING, (DEFAULT, IGNORE))

RESOLVECONFLICT (DELETEROWMISSING, (DEFAULT, IGNORE));

 

 

三、测试

1 在ogg环境中开ogg的启管理进程,抽取进程和同步进程

GGSCI (localhost) 10> start mgr

 

Manager started.

 

 

GGSCI (localhost) 11> start ext1

 

Sending START request to MANAGER ...

EXTRACT EXT1 starting

 

 

GGSCI (localhost) 12> start ext2

 

Sending START request to MANAGER ...

EXTRACT EXT2 starting

 

 

GGSCI (localhost) 13> start rep1

 

Sending START request to MANAGER ...

REPLICAT REP1 starting

 

 

GGSCI (localhost) 14> start rep2

 

Sending START request to MANAGER ...

REPLICAT REP2 starting

 

 

GGSCI (localhost) 15> info all

 

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

 

MANAGER     RUNNING                                          

EXTRACT     RUNNING     EXT1        00:00:23      00:00:05   

EXTRACT     RUNNING     EXT2        00:09:09      00:00:02   

REPLICAT    RUNNING     REP1        00:00:00      00:00:04   

REPLICAT    RUNNING     REP2        00:00:00      00:00:01 

 

2 在sqlplus环境中用sys用户清空scott.table和haishu.table中的数据

SQL> delete from scott.table;

SOL> delete from haishu.table;

 

3 在scott.test_table中插入数据,并从haishu.test_table中检验

SQL> insert into scott.test_table values('scott-001');

 

已创建 1 行。

 

SQL> commit;

 

提交完成。

 

SQL> select * from haishu.test_table;

 

ID

----------

scott-001

 

4 在haishu.test_table中插入数据,并从scott.test_table中验证

SQL> insert into haishu.test_table values('haishu-001');

 

已创建 1 行。

 

SQL> commit;

 

提交完成。

 

SQL> select * from scott.test_table;

 

ID

----------

haishu-001

scott-001

 

5 删除scott.test_table中的数据,并从haishu.test_table中验证

SQL> delete from scott.test_table where id='haishu-001';

 

已删除 1 行。

 

SQL> commit;

 

提交完成。

 

SQL> select * from haishu.test_table;

 

ID

----------

scott-001

 

6 删除haishu.test_table中的数据,并从scott.test_table中查询

SQL> delete from haishu.test_table where id='scott-001';

 

已删除 1 行。

 

SQL> commit;

 

提交完成。

 

SQL> select * from scott.test_table;

 

未选定行

 

7 实验结果

通过上述的测试,我们发现Linux下的单机双向同步数据已经成功实现了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29485627/viewspace-1762421/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29485627/viewspace-1762421/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值