Oracle11gR2_GoldenGate中使用datapump实现基于SCN的初始化


    Oracle11gR2_GoldenGate中使用datapump实现基于SCN的初始化


首先在源端启动extract进程与pump进程,然后执行基于SCN的expdp/impdp初始化,最后以SCN为起点打开目标端的replicat进程。

1、测试环境

Oracle:11.2.0.4
OGG:11.2.1.0.1

OS:OL 6.5



2、清理源端和目标端环境

2.1 目标端:


stop rep1  
dblogin userid ogg,password ogg
delete rep1

2.2 源端:

dblogin userid ogg,password ogg
delete ext1
delete pump1

注:之前的环境已经开启了DDL复制。



3、重新配置GG环境

3.1 源端:


创建ext1进程:

GGSCI (oraclesrc) 2> add extract ext1,tranlog,begin now
EXTRACT added.


GGSCI (oraclesrc) 3> add exttrail /u01/ogg/dirdat/lt,extract ext1
EXTTRAIL added.


GGSCI (oraclesrc) 4> view params ext1

extract ext1
userid ogg@orasrc, password ogg
--rmthost 172.26.181.103, mgrport 7809
--rmttrail /u01/ogg/dirdat/lt
exttrail /u01/ogg/dirdat/lt
ddl include mapped objname test.*;
table test.*;

创建pump1进程:

GGSCI (oraclesrc) 5> add extract pump1,exttrailsource /u01/ogg/dirdat/lt
EXTRACT added.


GGSCI (oraclesrc) 6> add rmttrail /u01/ogg/dirdat/lt,extract pump1
RMTTRAIL added.


GGSCI (oraclesrc) 7> view params pump1

extract pump1
userid ogg@orasrc, password ogg
rmthost 172.26.181.103, mgrport 7809
rmttrail /u01/ogg/dirdat/lt
passthru
table test.*;

3.2 目标端

创建checkpoint表

GGSCI (oracledest) 6> view param ./globals

GGSCHEMA OGG
CHECKPOINTTABLE OGG.CHECKPOINT

注:之前的环境已经有这个表了,所以这里没有重新创建,否则执行创建命令:

dblogin userid ogg,password ogg
add checkpointtable ogg.checkpoint

创建rep1进程:

GGSCI (oracledest) 9> add replicat rep1,exttrail /u01/ogg/dirdat/lt,checkpointtable ogg.checkpoint
REPLICAT added.

GGSCI (oracledest) 10> view param rep1

replicat rep1
ASSUMETARGETDEFS
userid ogg@oradest,password ogg
discardfile /u01/ogg/dirdat/rep1_discard.txt,append,megabytes 10
DDL
map test.*,target test.*;

3.3 启动ext1与pump1进程

start ext1

start pump1



4、使用expdp/impdp完成初始化

创建oracle目录:

[oracle@oraclesrc u01]$ mkdir oradir

SQL> create directory oradir as '/u01/oradir';

Directory created.

查看当前SCN:

SQL> select current_scn from v$database;

CURRENT_SCN
-----------
    1842214
    
按SCN执行导出:

[oracle@oraclesrc u01]$ expdp system/oracle directory=oradir dumpfile=orasrc.dmp logfile=orasrc.log SCHEMAS=test flashback_scn=1842214;

拷贝文件到目标:

[oracle@oraclesrc ogg]$ scp /u01/oradir/orasrc.dmp 172.26.181.103:/home/oracle

在目标端执行导入:

[oracle@oracledest oradir]$ impdp system/oracle DIRECTORY=oradir DUMPFILE=orasrc.dmp SCHEMAS=test logfile=imp.log



5、启动rep1进程

启动之前在源端执行操作,再看看同步情况。

源端:

SQL> select * from test.t1;

        C1
----------
         3
         6
         7
         1
         4
         5
      8888
         2

8 rows selected.

SQL> delete from test.t1 where c1=8888;

1 row deleted.

SQL> commit;

目标端启动rep1:

GGSCI (oracledest) 20> start rep1 aftercsn 1842214  

目标端验证同步情况:

SQL> select * from test.t1;

        C1
----------
         3
         6
         7
         1
         4
         5
         2
        
已经可以正常同步了。

 



    






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值