第一次配goldengate的艰辛

第一次配goldengate的过程比较艰辛,配了4天才配成。再次得到教训You can't be too careful!!!!!!

下面就简单介绍一下配置direct load的过程和出现的错误。

 

环境:redhat 5.7 X86, goldengate 11.1.1 for oracle 11g

 

这里特别提示:source和target的goldengate的版本一定要一致,不然会有意想不到的错误。我就是把source端装成11.2.1,而targer端装的11.1.1,这样折腾了好几天才搞定。

 

1,配置ogg会用到的环境变量

 

 

ORACLE_BASE=/u01

ORACLE_HOME=$ORACLE_BASE/oracle

ORACLE_SID=ggsource61

 

 

PATH=$ORACLE_BASE/gg11_1_1:$ORACLE_HOME/bin:$PATH

#gg11_1_1存放的是ogg的所有文件

 

LD_LIBRARY_PATH=$ORACLE_BASE/gg11_1_1:$ORACLE_HOME/lib:$LD_LIBRARY_PATH

 

#DISPLAY=localhost:1018.0

 

DISPLAY=localhost:0.0

export DISPLAY LD_LIBRARY_PATH ORACLE_BASE ORACLE_HOME ORACLE_SID PATH

 


2,安装ogg(source和target都要安装,个人认为切版本最好一致)

ogg的安装相当简单。

a,解压ogg的.zip压缩包。会得到ggs_Linux_x86_ora11g_32bit_v11_1_1_0_0_078.tar。

b,tar -xvf ggs_Linux_x86_ora11g_32bit_v11_1_1_0_0_078.tar 

c,最好在gg11_1_1目录下面输入ggsci,进入ogg的控制工具

d,在ggsci下:ggsci> create subdirs。 这样就安装好了ogg

 

  下面的步骤只用在source端执行。

e,sqlplus /nolog

     SQL>conn /as sysdba

     SQL>ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; 

     SQL> ALTER SYSTEM SWITCH LOGFILE; 

 

3,配置manager进程

 

     source端:

 

ggsci> edit params mgr (进入vi编辑器)

 port 7809 -- ogg默认的端口,也可配置为其他的端口。保存,退出

ggsci> start mgr

查看mgr的信息:

ggsci> info mgr

 

在source端创建测试用的表,并插入数据,可在sqlplus中的gguser(测试ogg用的临时用户)用户下执行ogg安装目录下面的脚本,脚本demo_ora_create会创建两个表:TCUSTMER,TCUSTORD。

 

 

[oracle@localhost gg11_1_1]$ ll demo*

-r--r--r-- 1 oracle oinstall  883 Mar 13  2010 demo_ora_create.sql

-r--r--r-- 1 oracle oinstall  821 Mar 13  2010 demo_ora_insert.sql

 

   targer端:

 

target端同样要配置mgr,它的端口可以和source的相同,也可不同。

在targer端,最好在同样的用户下创建这两个表,但不执行demo_ora_insert.sql

 

4,向ogg注册要实现数据同步的用户及sechema。

 

 

 

GGSCI> DBLOGIN USERID system, PASSWORD oracle

Successfully logged into database.

 

GGSCI> ADD TRANDATA gguser.*

 

Logging of supplemental redo log data is already enabled for table GGUSER.TCUSTMER.

Logging of supplemental redo log data is already enabled for table GGUSER.TCUSTORD.

 

 

GGSCI> INFO TRANDATA gguser.*

 

Logging of supplemental redo log data is enabled for table GGUSER.TCUSTMER

Logging of supplemental redo log data is enabled for table GGUSER.TCUSTORD


5,使用direct load方式同步数据

a,配置source端的extract进程
  ggsci> add extract einikk, sourceistable
  ggsci> edit params einikk
  
   EXTRACT EINIKK
   USERID system, PASSWORD "oracle"
   RMTHOST 192.168.44.162, MGRPORT 7809
   RMTTASK REPLICAT, GROUP RINIKK

   TABLE gguser.TCUSTMER;
   
   TABLE gguser.TCUSTORD;


 

 

 

 

 

 

 

注:RMTHOST是target的IP,GROUP RINIKK中的RINIKK和target端的replicat进程rinikk一致。

 

 

b.配置target端的replicat进程

 

   ggsci> add replicat rinikk, specialrun

   ggsci> edit params rinikk

 

  
REPLICAT RINIKK
ASSUMETARGETDEFS
USERID system, PASSWORD oracle
DISCARDFILE ./dirrpt/RINIKK.dsc, PURGE
MAP gguser.*,  TARGET gguser.*;


 

 

 

 

c,在source端,ggsci>start extract einikk 完成source和target的数据同步。

 

错误总结:

一下错误是在我的source和target的ogg版本不一致的情况下得到的:

1,ERROR   OGG-00212  Invalid option for MAP: gguser.*

 有人的说法是因为replicat的rinikk参数配置不正确。应该map参数中target和前面的逗号间有个空格。

2,OGG-01389 FILE HEADER FAILED TO PARSE TOKENS。这是这个错误让我发现两个ogg的版本不一致。

 

   这个错误是在target端出现的,view report rinikk。

 

 

***********************************************************************

**            Running with the following parameters                  **

***********************************************************************

REPLICAT rora1

ASSUMETARGETDEFS

USERID system, PASSWORD "******"

DISCARDFILE ./dirrpt/rora1.dsc, PURGE

MAP gguser.*, TARGET gguser.*;

 

 

CACHEMGR virtual memory values (may have been adjusted)

CACHEBUFFERSIZE:                         64K

CACHESIZE:                              512M

CACHEBUFFERSIZE (soft max):               4M

CACHEPAGEOUTSIZE (normal):                4M

PROCESS VM AVAIL FROM OS (min):           1G

CACHESIZEMAX (strict force to disk):    881M

 

Database Version:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

PL/SQL Release 11.2.0.1.0 - Production

CORE    11.2.0.1.0      Production

TNS for Linux: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 - Production

 

Database Language and Character Set:

NLS_LANG = "AMERICAN_AMERICA.AL32UTF8" 

NLS_LANGUAGE     = "AMERICAN" 

NLS_TERRITORY    = "AMERICA" 

NLS_CHARACTERSET = "AL32UTF8" 

 

For further information on character set settings, please refer to user manual.

 

***********************************************************************

**                     Run Time Messages                             **

***********************************************************************

 

 

Source Context :

  SourceModule            : [er.idlr]

  SourceID                : [/home/ecloud/workspace/Build_FBO_OpenSys_r11.1.1.0.0_

078_[34087]/perforce/src/app/er/idlr.c]

  SourceFunction          : [idlr_command_handler]

  SourceLine              : [534]

  ThreadBacktrace         : [10] elements

                          : [./replicat(CMessageContext::AddThreadContext()+0x26) 

[0x81ff1d6]]

                          : [./replicat(CMessageFactory::CreateMessage(CSourceCont

ext*, unsigned int, ...)+0x817) [0x81f5937]]

                          : [./replicat(_MSG_ERR_TRAIL_HEADER_CANNOT_PARSE_TOKENS(

CSourceContext*, char const*, unsigned int, char const*, CMessageFactory::MessageD

isposition)+0x8b) [0x81cb7fb]]

                          : [./replicat(IDLR_input_event_handler(short*, char**, u

nsigned int*, ggs::gglib::ggtrail::TrailHeader**)+0x214) [0x83c05b2]]

                          : [./replicat(XR_read(char*, __std_rec_hdr*, short, shor

t, char*, short*, char*, short*, char*)+0x7b) [0x8393a33]]

                          : [./replicat(READ_EXTRACT_RECORD(chkpt_context_t*, shor

t, char*, __std_rec_hdr*, int*, int*, long long*, short, short, char*, short*, cha

r*, short*, long long*, char*)+0x208) [0x849f598]]

                          : [./replicat [0x84acb64]]

                          : [./replicat(main+0x6957) [0x812a037]]

                          : [/lib/libc.so.6(__libc_start_main+0xdc) [0xbece9c]]

                          : [./replicat(__gxx_personality_v0+0x1b1) [0x8109291]]

 

2013-02-05 09:04:15  ERROR   OGG-01389  File header failed to parse tokens. File I

NITIALDATALOAD, last offset 830, data: 0x     33E: 000000013A00000200003B000004000

000013C000014000000101414141414141414141414141114141433000074300000070005454F52413

131000002000232000002000B330000020002340000020001350000020000360000020001370000410

03F56657273696F6E2031312E322E312E302E31204F4747434F52455F3131.

 

我是把source端也装成ogg11.1.1后,同步数据成功的。如果想用ogg11.2.1下和ogg11.1.1同步的解决方案在

http://www.dbrabbit.com/archivers/ogg-01389-file-header-failed-to-parse-tokens.html


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值