您的位置:首页 > 数据库 > Oracle

goldengate不使用数据泵完成Oracle-Oracle的双向复制

2013-10-28 15:18 471 查看
配置数据库环境、goldengate用户,安装goldengate等操作,参考http://blog.csdn.net/q947817003/article/details/13293751这里面的1-4步。

不使用数据泵完成Oracle-Oracle的双向复制所需的配置:--我这里只配置同步test用户的 test1表。

1.主库的配置:

#####配置Extract

按顺序执行以下操作:

add extract ext1,tranlog, begin now

add exttrail /u01/ogg/dirdat/lt, extract ext1

edit params ext1

在打开的编辑窗口写入以下:----这里使用为OGG创建的用户来登陆,同时要注意路径的对照。

extract ext1

userid ogg, password ogg

rmthost 192.168.1.213, mgrport 7809

rmttrail /u01/ogg/dirdat/lt

table test.*;
#####配置Replicat

edit params ./GLOBAL

在编辑窗口输入以下两行:

GGSCHEMA ogg

CHECKPOINTTABLE ogg.checkpoint

dblogin userid ogg,password ogg

add checkpointtable ogg.checkpoint

add replicat rep2,exttrail /u01/ogg/dirdat/at, checkpointtable ogg.checkpoint

edit params rep2

在弹出编辑窗口输入:---我这里只设置了同步test用户的test1表--这里的用户和表名在下一步的测试中再建立。

可以使用handlecollisions参数,避免主库与目标库所需要同步的表中数据不一致导致的接收进程挂起。

replicat rep2

handlecollisions

ASSUMETARGETDEFS

userid ogg,password ogg

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

map test.test1, target test.test1;

配置完成后的进程如下:--注意我这里的进程状态是启动后的。--建议主库及目标库都配置进程完成后再启动。

GGSCI (bys001.oel.com) 11> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                          

EXTRACT     RUNNING     EXT1        00:00:00      00:00:00   

REPLICAT    RUNNING     REP2        00:00:00      00:00:02   

2.目标库的配置

#####配置Replicat

edit params ./GLOBAL

在编辑窗口输入以下两行:

GGSCHEMA ogg

CHECKPOINTTABLE ogg.checkpoint

逐次输入以下命令:

dblogin userid ogg,password ogg

add checkpointtable ogg.checkpoint

add replicat rep1,exttrail /u01/ogg/dirdat/lt, checkpointtable ogg.checkpoint

edit params rep1

在弹出编辑窗口输入以下:---我这里只设置了同步test用户的test1表--这里的用户和表名在下一步的测试中再建立。

replicat rep1

handlecollisions

ASSUMETARGETDEFS

userid ogg,password ogg

discardfile /u01/ogg/dirdat/rep1_discard.txt,append, megabytes 10

map test.test1, target test.test1;

#####配置Extract

按顺序执行以下命令:

add extract ext2,tranlog, begin now

add exttrail /u01/ogg/dirdat/at, extract ext2

edit params ext2

在打开的编辑窗口写入:

extract ext2

TRANLOGOPTIONS EXCLUDEUSER ogg

userid ogg, password ogg

rmthost 192.168.1.211, mgrport 7809

rmttrail /u01/ogg/dirdat/at

table test.*;

配置完成后的进程如下:--注意我这里的进程状态是启动后的。

GGSCI (bys2.oel.com) 32> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                          

EXTRACT     RUNNING     EXT2        00:00:00      00:00:07   

REPLICAT    RUNNING     REP1        00:00:00      00:00:01 

3.启动OGG的进程

进程增加完毕,然后分别在主和目标库中执行启动进程的命令

启动进程的命令示例如下:--注意所在库的进程名

start mgr

start ext1

start rep2

发出启动进程命令后使用 info all 命令查看进程是否已经是 RUNNING状态。

如果是ABENDED挂起状态,可以通过检查OGG安装目录下的ggserr.log 文件,查看出错原因并解决后重新启动进程。

4.测试数据同步情况:

在主库及目标库分别创建测试表:

create table test1(aa varchar2(10)  constraint pk_aa primary key);

然后分别从主库及目标库插入数据来测试数据是否同步:
主库插入数据:

[oracle@bys001 ogg]$ sqlplus test/test

TEST@bys1>set time on

15:36:57 TEST@bys1>select * from test1;

no rows selected

15:37:02 TEST@bys1>insert into test1 values(123);

1 row created.

15:37:13 TEST@bys1>commit;

Commit complete.

15:37:16 TEST@bys1>select * from test1;

AA

--------------------

123
目标库查询:

[oracle@bys2 ogg]$ sqlplus test/test

TEST@bys2>select * from test1;

no rows selected

TEST@bys2>set time on
15:36:50 TEST@bys2>select * from test1;

AA

--------------------

123

#####
在目标库插入数据:

15:40:13 TEST@bys2>insert into test1 values(456);

1 row created.

15:40:25 TEST@bys2>commit;

Commit complete.

在主库查询:

15:40:10 TEST@bys1>

15:40:30 TEST@bys1>select * from test1;

AA

--------------------

123

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