DBA_Oracle GoldenGate三步骤Extract / Dump / Relicat

2014-12-24 Created By 鲍新建

技术分享一、摘要


1.OGG是数据同步软件,或者说是逻辑复制软件,其竞争对手有IBM CDC,DELL shareplex,DSG,DDS等等。

2.OGG软件是需要安装在操作系统上的,Oracle DB软件没有自带OGG软件(至少目前是这样的)

3.OGG软件有三大进程(说四大进程也行):

三大进程:源头抽取进程、源头传输进程、目的端应用进程(即:复制进程)

四大进程:源头抽取进程、源头传输进程、目的端server进程(负责在目的端写入trail文件)、目的端应用进程(即:复制进程)

4.OGG软件有两种trail file

源头的trail file:由源头抽取进程写入。

目的端的trail file: 源头传输进程传输到目的端,由目的端的server 进程写入目的端操作系统的指定路径下。

5.OGG软件中三大进程都有自己的checkpoint(即:检查点,用来记录每种进程读取到什么位置了,写入到什么位置了)

源头抽取进程:有读取检查点 和写入检查点

源头传输进程:有读取检查点 和写入检查点

目的端应用进程:有读取检查点

6.OGG软件三大进程处理trail file的过程:

源头抽取进程:读取oracle redo log(假设源头数据库是oracle),结合抽取进程的参数文件,将redo log中的内容变为OGG自有格式的文件(即trail file),并写入到源头操作系统的指定路径下

源头传输进程:读取“源头抽取进程写入的trail file”,结合传输进程的参数文件,发送需要同步的数据到目的端,在目的端是由server 进程负责写入。

目的端应用进程:读取目的端操作系统的指定路径下的trail file,结合应用进程的参数文件,形成sql语句,在目的端db上执行这些sql语句。

 

技术分享二、Extract Process


 

技术分享三、Dump Process


 

技术分享四、Replicate Process


 

技术分享五、测试


 

1. Source创建Extract

add extract ext1,tranlog, begin now

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

view params ext1

 

2. Source创建Pump

add extract dpump,exttrailsource /u01/ggate/dirdat/lt

add rmttrail /u01/ggate/dirdat/lt, extract dpump

view params dpump

 

3. Target创建Replicat

3.1 配置进程的checkpoint

edit params ./GLOBAL

GGSCHEMA ggate

CHECKPOINTTABLE ggate.checkpoint

3.2 连接DB的ggate用户,在DB中创建checkpoint表

add checkpoint tableggate.checkpoint

 

3.3 创建replicat group

add replicatrep1,exttrail /u01/ggate/dirdat/lt, checkpointtable ggate.checkpoint

 

3.4 修改参数

view params rep1

 

4. 启动Extract / Dump / Replicat 进程

 

5. 测试

start ext1

 

info ext1

 

info dpump

 

start rep1

 

info rep1

 

验证一下:

--Source DB:

SQL> conn dave/dave;      

Connected.

 

SQL> select count(*) from pdba;

 COUNT(*)

----------

  2706623

 

--Target DB:

SQL> select count(*) from pdba;

 COUNT(*)

----------

  2706623

 

在Source DB insert 一条数据:

SQL> insert into pdba values(2,sysdate);

1 row created.

 

SQL> commit;

Commit complete.

 

SQL> select count(*) from pdba;

 COUNT(*)

----------

  2706624

 

到Target DB 查询:

SQL> select count(*) from pdba;

 COUNT(*)

----------

  2706624



参考:shined - http://www.cnblogs.com/shined/archive/2012/07/12/2587648.html

参考:msdnchina - http://blog.csdn.net/msdnchina/article/details/38347285

技术分享

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。