GoldenGate安装配置手册V11.docx
《GoldenGate安装配置手册V11.docx》由会员分享,可在线阅读,更多相关《GoldenGate安装配置手册V11.docx(31页珍藏版)》请在冰豆网上搜索。
GoldenGate安装配置手册V11
XXXX平台
GoldenGate安装配置手册
(版本号1.0)
xxxxxxx有限公司
二〇一二年八月
更改履历
版本号
修改编号
更改时间
更改的
图表和章节号
更改简要描述
更改人
批准人
注:
更改人除形成初稿,以后每次修改在未批准确认前均需采用修订的方式进行修改。
1项目背景1
2GoldenGate简要说明1
2.1GoldenGate技术结构1
2.2GoldenGate拓扑结构3
3单机单机复制配置4
3.1环境简介4
3.2源端安装GoldenGate4
3.3目标端安装GoldenGate5
3.4配置源端数据库5
3.5配置源端进程组6
3.6配置目标数据库8
3.7配置目标端进程组9
3.8启动进程进行数据同步10
4RAC单机复制配置11
4.1环境简介11
4.2源端安装OCFS2集群文件系统11
4.3源端安装GoldenGate12
4.4目标端安装GoldenGate13
4.5配置源端数据库13
4.6配置源端进程组14
4.7配置目标数据库15
4.8配置目标端进程组16
4.9启动进程进行数据同步16
5RAC单机下的HA配置17
5.1节点故障的手工处理方式17
5.2GoldenGate的HA配置17
6常见错误及解决方法22
6.1OGG-0044622
6.2OGG-0122323
6.3OGG-0122423
6.4OGG-0103123
6.5OGG-0115424
1项目背景
2GoldenGate简要说明
GoldenGate现在是业内成熟的数据容灾与复制产品,经过多年的发展与完善,现在已经成为业内事实上的标准之一。
GoldenGate软件是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化,再将这些变化应用到目标数据库,实现源数据库与目标数据库同步。
2.1GoldenGate技术结构
GoldenGate软件的技术结构如图1.1所示:
图1.1GoldenGate技术架构图
从图中可以看到:
GoldenGate主要包含Manager进程、Extract进程、Pump进程、Replicat进程,下面对其一一说明:
Manager进程是GoldenGate的控制进程,它主要作用有以下几个方面:
启动、监控、重启GoldenGate的其他进程,报告错误及时间,分配数据存储空间,发布阀值报告等。
Extract进程运行在数据库源端,负责从源端数据表或日志中捕获数据。
Extract进程利用其内在的checkpoint机制,周期性地检查并记录其读写的位置,通常是写入到本地的trail文件。
这种机制是为了保证如果Extract进程终止或者操作系统宕机,我们重启Extract进程后,GoldenGate能够恢复到以前的状态,从上一个断点处继续往下运行,而不会有任何数据损失。
Pump进程运行在数据库源端,其作用非常简单。
如果源端使用了本地trail文件,那么Pump进程就会把Trail文件以数据块的形式通过TCP/IP协议发送到目标端,我们下面的配置都是这种方式。
Pump进程本质是Extract进程的一种特殊形式,如果不使用Trail文件,那么Extract进程在抽取完数据后,直接投递到目标端。
与Pump进程相对应的叫ServerCollector进程,这个进程不需要引起我们关注,因为在实际操作过程中无需对其进行任何配置,它运行在目标端,任务就是把Extract/Pump进程投递过来的数据块重新组装成Trail文件。
Replicat进程运行在目标端,是数据投递的最后一站,负责读取目标端Trail文件中的内容,并将解析其解析为DML或DDL语句,然后应用到目标数据库中。
2.2GoldenGate拓扑结构
GoldenGate提供了灵活的应用方案,基于其先进、灵活的技术架构可以根据用户需求组成各种拓扑结构,如图1.2所示:
图1.2GoldenGate应用方案示意图
根据实际需求情况,我们需要进行的是一对一复制,且只是复制部分表数据,所以这里仅探讨一对一复制的安装配置,而且对于DDL复制的支持这里也不做研究。
3单机单机复制配置
3.1环境简介
性质
IP
系统
ORACLE版本
源端
10.122.0.110
AIX5.3
10.2.0.1
目标端
10.122.0.113
WINDOWS2003
10.2.0.1
3.2源端安装GoldenGate
创建GoldenGate安装目录并解压安装文件
unzipogg112101_ggs_AIX_ppc_ora10.2_64bit.zip
tar–xfggs_AIX_ppc_ora10.2_64bit.tar
注意:
使用的安装包一定要与平台一致
设置环境变量
在用户参数文件中添加以下内容:
exportGGATE_HOME=/u01/oracle/oracle/ogg
exportLIBPATH=$GGATE_HOME:
$ORACLE_HOME/lib
注意:
添加后需使参数文件生效
HP及LINUX平台下用LD_LIBRARY_PATH替换LIBPATH
安装GoldenGate
进入OGG控制台创建OGG工作目录
然后在安装目录下执行./ggsci进入OGG控制台
执行命令createsubdirs创建工作目录,显示如下:
GGSCI(NDSCDB1)1>createsubdirs
Creatingsubdirectoriesundercurrentdirectory/u01/oracle/oracle/ogg
Parameterfiles/u01/oracle/oracle/ogg/dirprm:
alreadyexists
Reportfiles/u01/oracle/oracle/ogg/dirrpt:
created
Checkpointfiles/u01/oracle/oracle/ogg/dirchk:
created
Processstatusfiles/u01/oracle/oracle/ogg/dirpcs:
created
SQLscriptfiles/u01/oracle/oracle/ogg/dirsql:
created
Databasedefinitionsfiles/u01/oracle/oracle/ogg/dirdef:
created
Extractdatafiles/u01/oracle/oracle/ogg/dirdat:
created
Temporaryfiles/u01/oracle/oracle/ogg/dirtmp:
created
Stdoutfiles/u01/oracle/oracle/ogg/dirout:
created
3.3目标端安装GoldenGate
建立OGG安装目录,然后将压缩包解压到目录中,进入cmd控制台,创建工作目录,
操作步骤显示如下:
3.4配置源端数据库
数据库模式配置
源端数据库必须开启归档模式
Alterdatabasearchivelog;
开启最小附加日志
Alterdatabaseaddsupplementallogdata;
使用SELECTSUPPLEMENTAL_LOG_DATA_MINFROMV$DATABASE;
可查看是否开启了最小附加日志;
源端数据库创建GoldenGate数据库用户并授权:
(我们这里以ogg为例,使用其他亦可)
createuseroggidentifiedbyoracledefaulttablespaceDATA_OL;
grantconnect,resource,unlimitedtablespacetoogg;
grantexecuteonutl_filetoogg;
grantselectanydictionary,selectanytabletoogg;
grantalteranytabletoogg;
grantflashbackanytabletoogg;
grantexecuteonDBMS_FLASHBACKtoogg;
添加表级transdata
GGSCI(NDSCDB1)2>dbloginuseridogg,passwordoracle
Successfullyloggedintodatabase.
GGSCI(NDSCDB1)3>addtrandataolive.ol$_objects
LoggingofsupplementalredodataenabledfortableOLIVE.OL$_OBJECTS.
3.5配置源端进程组
配置管理进程mgr:
GGSCI(NDSCDB1)1>editparammgr
(粘贴下面这段配置)
PORT7839
DYNAMICPORTLIST7840-7939
--AUTOSTARTER*
AUTORESTARTEXTRACT*,RETRIES5,WAITMINUTES3
PURGEOLDEXTRACTS./dirdat/*,usecheckpoints,minkeepdays3
LAGREPORTHOURS1
LAGINFOMINUTES30
LAGCRITICALMINUTES45
MANAGER进程参数配置说明:
PORT:
指定服务监听端口;这里以7839为例,默认端口为7809
DYNAMICPORTLIST:
动态端口:
可以制定最大256个可用端口的动态列表,当指定的端口不可用时,管理进程将会从列表中选择一个可用的端口,源端和目标段的Collector、Replicat、GGSCI进程通信也会使用这些端口;
COMMENT:
注释行,也可以用--来代替;
AUTOSTART:
指定在管理进程启动时自动启动哪些进程;
AUTORESTART:
自动重启参数设置:
本处设置表示每3分钟尝试重新启动所有EXTRACT进程,共尝试5次;
PURGEOLDEXTRACTS:
定期清理trail文件设置:
本处设置表示对于超过3天的trail文件进行删除。
LAGREPORT、LAGINFO、LAGCRITICAL:
定义数据延迟的预警机制:
本处设置表示MGR进程每隔1小时检查EXTRACT的延迟情况,如果超过了30分钟就把延迟作为信息记录到错误日志中,如果延迟超过了45分钟,则把它作为警告写到错误日志中。
启动管理进程:
GGSCI(NDSCDB1)2>startmgr
Managerstarted.
查看进程状态可发现MANAGER状态为RUNNING:
GGSCI(NDSCDB1)3>infoall
ProgramStatusGroupLagatChkptTimeSinceChkpt
MANAGERRUNNING
配置抽取进程:
GGSCI(NDSCDB1)12>addextractextnd,tranlog,beginnow
EXTRACTadded.
GGSCI(NDSCDB1)14>addexttrail./dirdat/nd,extractextnd,megabytes100
EXTTRAILadded.
Megabytes:
指定队列大小,本处设置表示100M。
GGSCI(NDSCDB1)15>editparamsextnd
(粘贴下面这段配置)
EXTRACTextnd
setenv(NLS_LANG="AMERICAN_AMERICA.UTF8")
SETENV(ORACLE_HOME="/u01/oracle/oracle/product/10.2.0/db_1")
SETENV(ORACLE_SID="ndtest")
USERIDogg,PASSWORDoracle
--GETTRUNCATES
REPORTCOUNTEVERY1MINUTES,RATE
DISCARDFILE./dirrpt/extnd.dsc,APPEND,MEGABYTES1024
--THREADOPTIONSMAXCOMMITPROPAGATIONDELAY60000IOLATENS60000
DBOPTIONSALLOWUNUSEDCOLUMN
WARNLONGTRANS2h,CHECKINTERVAL3m
EXTTRAIL./dirdat/nd
--TRANLOGOPTIONSEXCLUDEUSERUSERNAME
FETCHOPTIONSNOUSESNAPSHOT
TRANLOGOPTIONSCONVERTUCS2CLOBS
TABLEolive.ol$_objects
添加传输进程,配置参数
GGSCI(NDSCDB1)2>addextractdpend,exttrailsource./dirdat/nd
EXTRACTadded.
GGSCI(NDSCDB1)3>addrmttrailF:
\ogg\dirdat\nd,EXTRACTDPEND
RMTTRAILadded.
GGSCI(NDSCDB1)4>editparamsdpend
(粘贴下面这段配置)
EXTRACTdpend
SETENV(NLS_LANG="AMERICAN_AMERICA.UTF8")
USERIDogg,PASSWORDoracle
PASSTHRU
RMTHOST10.122.0.113,MGRPORT7839,compress
RMTTRAILF:
\ogg\dirdat\nd
TABLEolive.ol$_objects;
抽取进程和传输进程其实都是EXTRACT进程,也可以配置在一个进程完成这两个功能,但是当网络传输有问题时,这样抽取也就不能继续运行了,所以推荐分开配置为两个进程;
EXTRACT进程参数配置说明:
SETENV:
配置系统环境变量
USERID/PASSWORD:
指定OGG连接数据库的用户名和密码,这里使用3.4部分中创建的数据库用户OGG;
COMMENT:
注释行,也可以用--来代替;
TABLE:
定义需复制的表,后面需以;结尾
TABLEEXCLUDE:
定义需要排除的表,如果在TABLE参数中使用了通配符,可以使用该参数指定排除掉得表。
GETUPDATEAFTERS|IGNOREUPDATEAFTERS:
是否在队列中写入后影像,缺省复制
GETUPDATEBEFORES|IGNOREUPDATEBEFORES:
是否在队列中写入前影像,缺省不复制
GETUPDATES|IGNOREUPDATES:
是否复制UPDATE操作,缺省复制
GETDELETES|IGNOREDELETES:
是否复制DELETE操作,缺省复制
GETINSERTS|IGNOREINSERTS:
是否复制INSERT操作,缺省复制
GETTRUNCATES|IGNORETRUNDATES:
是否复制TRUNCATE操作,缺省不复制;
RMTHOST:
指定目标系统及其GoldengateManager进程的端口号,还用于定义是否使用压缩进行传输,本例中的compress为压缩传输;
RMTTRAIL:
指定写入到目标断的哪个队列;
EXTTRAIL:
指定写入到本地的哪个队列;
SQLEXEC:
在extract进程运行时首先运行一个SQL语句;
PASSTHRU:
禁止extract进程与数据库交互,适用于DataPump传输进程;
REPORT:
定义自动定时报告;
STATOPTIONS:
定义每次使用stat时统计数字是否需要重置;
REPORTCOUNT:
报告已经处理的记录条数统计数字;
TLTRACE:
打开对于数据库日志的跟踪日志;
DISCARDFILE:
定义discardfile文件位置,如果处理中油记录出错会写入到此文件中;
DBOPTIONS:
指定对于某种特定数据库所需要的特殊参数;
TRANLOGOPTIONS:
指定在解析数据库日志时所需要的特殊参数,例如:
对于裸设备,可能需要加入以下参数rawdeviceoggset0
WARNLONGTRANS:
指定对于超过一定时间的长交易可以在gsserr.log里面写入警告信息,本处配置为每隔3分钟检查一次场交易,对于超过2小时的进行警告;
3.6配置目标数据库
目标库创建GoldenGate数据库用户并授权:
createuseroggidentifiedbyoracledefaulttablespaceDATA_OL;
grantconnect,resource,unlimitedtablespacetoogg;
grantexecuteonutl_filetoogg;
grantselectanydictionary,selectanytabletoogg;
grantalteranytabletoogg;
grantflashbackanytabletoogg;
grantexecuteonDBMS_FLASHBACKtoogg;
grantinsertanytabletoogg;
grantdeleteanytabletoogg;
grantupdateanytabletoogg;
添加checkpoint表
然后在参数文件中输入
GGSCHEMAogg
CHECKPOINTTABLEogg.checkpoint
3.7配置目标端进程组
配置管理进程
配置复制进程
REPLICAT进程参数配置说明:
ASSUMETARGETDEFS:
假定两端数据结构一致使用此参数;
SOURCEDEFS:
假定两端数据结构不一致,使用此参数指定源端的数据结构定义文件,该文件需要由GlodenGate工具产生。
MAP:
用于指定源端与目标端表的映射关系;
MAPEXCLUDE:
用于使用在MAP中使用*匹配时排除掉指定的表;
REPERROR:
定义出错以后进程的响应,一般可以定义为两种:
ABEND,即一旦出现错误即停止复制,此为缺省配置;
DISCARD,出现错误后继续复制,只是把错误的数据放到discard文件中。
DISCARDFILE:
定义discardfile文件位置,如果处理中油记录出错会写入到此文件中;
SQLEXEC:
在进程运行时首先运行一个SQL语句;
GROUPTRANSOPS:
将小交易合并成一个大的交易进行提交,减少提交次数,降低系统IO消耗。
MAXTRANSOPS:
将大交易拆分,每XX条记录提交一次。
3.8启动进程进行数据同步
启动源端进程组
启动抽取进程和传输进程:
startextnd
startdpend
启动后使用infoall查看进程状态,正常status应该RUNNING,显示如下:
GGSCI(NDSCDB1)11>infoall
ProgramStatusGroupLagatChkptTimeSinceChkpt
MANAGERRUNNING
EXTRACTRUNNINGDPEND00:
00:
0000:
15:
32
EXTRACTRUNNINGEXTND00:
00:
0000:
00:
04
启动目标端进程
startrepnd
显示如下:
到此OGG的安装配置就完成了,可以进行数据同步测试了。
4RAC单机复制配置
4.1环境简介
性质
IP
系统
ORACLE版本
源端
10.123.112.201/10.123.112.202
LINUXrhel564位
10.2.0.1
目标端
10.123.112.235
LINUXrhel532位
10.2.0.1
4.2源端安装OCFS2集群文件系统
RAC环境中为了实现高可用性,需将OGG安装在集群文件系统中,这样OGG可以访问RAC中的所有节点,我们这里测试采用OCFS2文件系统。
从下载与LINUX内核相符的OCFS2RPM包
LINUX下执行uname–r查看系统内核版本eg:
[oracle@node2ocfs]$uname-r
2.6.18-92.el5
使用ROOT用户安装OCFS2的RPM包
[root@node1ocfs]#rpm-ivhocfs2-tools-1.2.7-1.el5.x86_64.rpm\
ocfs2console-1.2.7-1.el5.x86_64.rpm\
ocfs2-2.6.18-92.el5-1.2.9-1.el5.x86_64.rpm
进入OCFS2控制台界面
[root@node1~]#ocfs2console
在出现的窗体中选择[Clucster]-[ConfigureNodes]在"NodeConfiguration"对话框中,输入2个专用互连的节点名、IP地址、端口号后,选择[Clucster]-[PropagateClusterConfiguration],提示"Finished"。
配置后的信息显示如下:
在集群中的所有节点上以root用户帐户的身份运行以下命令
exportPATH=$PATH:
/sbin:
/usr/sbin
/etc/init.d/o2cbenable
创建ocfs2文件系统,其中-N选项用于指明最多允许多少个节点同时使用此文件系统:
#mkfs-tocfs2-N2/dev/sdh1
挂载分区:
#mount/dev/sdh1/ggate
配置启动自动载入(所有节点):
exportPATH=$PATH:
/sbin:
/usr/sbin
chkconfig--addo2cb
/etc/init.d/o2c