第一次配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
?
?
?
?
?
?
?
注:RMTHOST是target的IP,GROUP RINIKK中的RINIKK和target端的replicat进程rinikk一致。
?
?
b.配置target端的replicat进程
?
? ?ggsci> add replicat rinikk, specialrun
? ?ggsci> edit params rinikk
?
??REPLICAT RINIKKASSUMETARGETDEFSUSERID system, PASSWORD oracleDISCARDFILE ./dirrpt/RINIKK.dsc, PURGEMAP 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
?
?