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

来源:互联网 发布:mac怎么给ipod导入歌曲 编辑:程序博客网 时间:2024/04/28 20:39
配置数据库环境、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