日期:2014-05-16  浏览次数:20535 次

使用goldengate的数据泵进行Oracle-Oracle的单向复制
配置数据库环境、goldengate用户,安装goldengate等操作,参考http://blog.csdn.net/q947817003/article/details/13293751这里面的1-4步。
使用数据泵进行Oracle-Oracle的单向复制所需的配置:--我这里只配置同步test3用户的 test3表。

1.主库的配置:

#####配置Extract
按顺序执行以下操作:
add extract ext3,tranlog, begin now
add exttrail /u01/ogg/dirdat/bt, extract ext3  
--这里会在本地/u01/ogg/dirdat/ 目录下生成bt*的文件,如果不使用PUMP,则add exttrail 和rmttail指定的一样,建立的trail都是目标端的,http://blog.csdn.net/q947817003/article/details/13294433

edit params ext3
在打开的编辑窗口写入以下:
extract ext3
userid ogg, password ogg
exttrail /u01/ogg/dirdat/bt
table test3.*;

#####配置PUMP   ---使用数据泵时需要配置PUMP,比不使用多出这一步。
执行以下命令
add extract pump3,exttrailsource ./dirdat/bt
add rmttrail /u01/ogg/dirdat/bt, EXTRACT pump3

edit param pump3
在打开的编辑窗口写入以下--注意所使用的文件的路径
extract pump3
USERID ogg, PASSWORD ogg
PASSTHRU
RMTHOST 192.168.1.213, MGRPORT 7809, compress
rmttrail /u01/ogg/dirdat/bt
table test3.*;

#############################

2.目标库设置

edit params ./GLOBAL
在编辑窗口输入以下两行:
GGSCHEMA ogg
CHECKPOINTTABLE ogg.checkpoint

这里使用前面为OGG创建的用户来登陆,同时要注意路径和OGG安装路径的对照。
dblogin userid ogg,password ogg
add checkpointtable ogg.checkpoint
add replicat rep3,exttrail /u01/ogg/dirdat/bt, checkpointtable ogg.checkpoint

edit params rep3
在弹出编辑窗口输入以:---我这里只设置了同步test3用户的test3表--这里的用户和表名在下一步的测试中再建立。
replicat rep3
handlecollisions
ASSUMETARGETDEFS
userid ogg,password ogg
discardfile /u01/ogg/dirdat/rep3_discard.txt,append, megabytes 10
map test3.test3, target test3.test3;
启动时先启动目标库的应用进程,再启动主库的PUMP及抽取进程。

3.同步测试:

首先在主库及目标库创建用户和表,示例如下:
create user test3 identified by test3;
grant connect,resource to test3;
BYS@bys1>conn test3/test3
Connected.
TEST3@bys1>create table test3(aa varchar2(10) primary key);
###############
源库:
TEST3@bys1>set time on
16:52:21 TEST3@bys1>select * from test3;
no rows selected
16:52:26 TEST3@bys1>
16:53:07 TEST3@bys1>insert into test3 values('is-ok');
1 row created.
16:53:29 TEST3@bys1>commit;
Commit complete.

#####################

目标库:

TEST3@bys2>set time on
16:52:30 TEST3@bys2>select * from test3;
no rows selected
16:52:34 TEST3@bys2>
16:53:33 TEST3@bys2>select * from test3;
no rows selected
16:53:34 TEST3@bys2>select * from test3;
AA
--------------------
is-ok