Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2796213
  • 博文数量: 389
  • 博客积分: 4177
  • 博客等级: 上校
  • 技术积分: 4773
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-16 23:29
文章分类

全部博文(389)

分类: Oracle

2011-10-30 03:23:34

                                          ORACLE GOLDEN GATE数据加载

ORACLE GOLDENGATE(以下简称GG)的初始化数据加载主要有三种方式:1,GG在源库上EXTRACT导出到一个文件中,然后导入目标库;2,使用GG的直接加载,EXTRACT在源库中捕捉后,直接传给目标库的REPLICAT;3,使用数据库的自带工具.从性能上来说第三种方式是最好的,适用大批量的数据.现在我们使用第二种方来实现数据库加载.在异构DB平台上,这种方式是最好的.有时可能是唯一的选择了.现在我们使用第二种方法来实现.

 

1,准备好数据库和GG软件;

 

2,关于表结构问题,如果两边都是ORACLE,可以直接用EXP导出,并且加参数ROWS=N,是异构平台的话,就需要使用定义文件;

 

3,增加源库的MGREXTRACT,GGSCI.

 

GGSCI (gg2) 1> edit params mgr

增加如下内容

--mgr parameters

Port 7809

GGSCI (gg2) 2> edit params ie01

增加如下内容,(// 后面是注脚,无需输入)

extract ie01   //EXTRACT

setenv (ORACLE_SID=gg1)  //源库SID

userid ggsadmin,password ggsadmin //GGS的用户名密码

rmthost 192.168.1.52,mgrport 7809 //目标库的IP和端口

rmttask replicat,group ir01 //RMTTASK REPLICAT表示是初化加载,GROUP定义了目标库的REPLICAT

table FRANK.*;

 

GGSCI (gg1) 2> add extract ie01,sourceistable

通过sourceistable,告诉EXTRACT该从源库的表中捕捉数据

 

4, 增加目标库的MGRREPLICAT, GGSCI:

GGSCI (gg2) 1> edit params mgr

增加如下内容

--mgr parameters

Port 7809

GGSCI (gg2) 3> edit params ir01

 

replicat ir01 //REPLICAT

setenv (ORACLE_SID=gg2)  //目标库SID

userid ggsadmin,password ggsadmin  //GGS的用户名密码

assumetargetdefs //目标库和源库的表结构相同

map FRANK.*, target FRANK.*; //定义表的映射关系

 

 

 

 

GGSCI (gg2) 4>add replicat ir01,specialrun

 

5,分别启动源库和目标库的MGR,再启动源库上的IE01

源库

GGSCI (gg2) 5> start mgr

目标库

GGSCI (gg2) 3> start mgr

最后再启动源库上的EXTRACT.三者顺序不要搞错了,如目标库的MGR没有启动启来,则主库中报ie01.prm:  TCP/IP error 111 (Connection refused)之类的错误

GGSCI (gg2) 6> start extract ie01

 

源库上的EXTRACT会自动通知目标库上的MGR去启动复制进程IR01.因此并不需要在目标库上手动去启动IR01

 

6,确认加载完毕.在源库上可以看GGSERR.LOG

2011-10-30 00:27:40  INFO    OGG-00992  Oracle GoldenGate Capture for Oracle, ie01.prm:  EXTRACT IE01 starting.

2011-10-30 00:27:42  INFO    OGG-00993  Oracle GoldenGate Capture for Oracle, ie01.prm:  EXTRACT IE01 started.

2011-10-30 00:29:00  INFO    OGG-00991  Oracle GoldenGate Capture for Oracle, ie01.prm:  EXTRACT IE01 stopped normally.//表示GGIE01在完成数据捕捉和发送后,正常结束

也可通过在目标上库上,通过以下VIEW来查看,每个表的行数.

GGSCI (gg2) 7> view report ir01

阅读(4598) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

www_xylove2012-07-22 14:04:57

如果在加载数据的时候,由数据变化,会导致数据不一致;你上面这个只适合停机情况下加载数据,如果是联机就不合适了,还必须在你上面配置的基础上增加一些配置,增加Replicat 进程上的HANDLECOLLISIONS参数(该参数将忽略重复数据),同步完成之后再取消该参数,而且direct load加载数据不支持LOB、 LONG类型的数据加载。如果表里有大对象字段那么就必须使用exp/imp 或 loading data from file to replicat 或 loading data from file to database utility等方式。
谢谢!