Oracle 11g 安装配置GoldenGate.docx
《Oracle 11g 安装配置GoldenGate.docx》由会员分享,可在线阅读,更多相关《Oracle 11g 安装配置GoldenGate.docx(14页珍藏版)》请在冰豆网上搜索。
Oracle11g安装配置GoldenGate
Oracle11gR2RAC和GoldenGate都是Oracle比较热门的产品,经过简单的学习和阅读文档,配置单节点的GoldenGate进行数据的复制相信不是什么太有难度的事情,但是对于利用GoldenGate进行RAC系统到RAC系统的复制,还是有些配置的技巧和策略设置的,前阵子就遇到一个这样一个问题:
假设源和目标分别是两节点的RAC系统,如何保证目标部分节点失效的时候replicate会自动切换?
其实如果了解GG的工作机制和RAC的资源管理,问题的解决就十分清晰了。
今天就从系统的介绍下11gR2RAC上OGG(OracleGoldenGate的简称,下同)的完整配置步骤,并简单谈谈如何解决上面这个场景的问题。
第一阶段:
下载OGG(可以参考之前的单节点的复制例子,不再赘述)
OGG的下载地址
第二阶段:
OGG的安装
1)登录源端的RAC系统中的任一个节点,并在ACFS上建立一个供OGG使用的共享目录,比如叫/cloudfs/goldengate
2)解压OGG的安装包到/cloudfs/goldengate目录
3)设置好OGG工作的环境变量,比如
exportLIBRARY_PATH=/cloudfs/goldengate:
$ORACLE_HOME/lib:
$LD_LIBRARY_PATH
4)启动ggsci并创建目录,然后进行必要的设置,启动manager
$ggsci
GGSCI>createsubdirs
(optional,supportforDDL/Sequence)
CreateandedittheparameterfileforGLOBALS:
GGSCI>EDITPARAMS./GLOBALS
AddthislinetoGLOBALSparameterfile:
GGSCHEMAggs
NOTE:
'ggs'istheexampleOGGuserandwillbeusedintherestofthisdocument.
GGSCI>EDITPARAMSmgr
AddthefollowinglinestoManagerparameterfile:
PORT7809
AUTOSTARTER*
AUTORESTARTER*
GGSCI>STARTmgr
5)在目标端重复上面的步骤1-4,注意目录名的使用,我们在目标端使用/mycloudfs/goldengate以示区分。
第三阶段:
源和目标RAC数据库准备步骤
1)CreateOGGuser'ggs'onboththesourceandtargetdatabase,connecttodatabaseusingSQL*PlusasSYSDBA:
SQL>CREATEUSERggsIDENTIFIEDBYggs;
SQL>GRANTCONNECT,RESOURCE,DBATOggs;
2)(optional,addOraclesequencereplicationsupport)Onbothsourceandtargetdatabase,gotoOGGdirectoryandrunthisSQL,enterOGGuser'ggs'asprompted:
SQL>@sequence.sql
3)EnablesupplementalloggingonsourceODAdatabase:
SQL>ALTERDATABASEADDSUPPLEMENTALLOGDATA;
SQL>ALTERDATABASEADDSUPPLEMENTALLOGDATA(PRIMARYKEY)COLUMNS;
SQL>ALTERDATABASEADDSUPPLEMENTALLOGDATA(UNIQUE)COLUMNS;
SQL>ALTERDATABASEADDSUPPLEMENTALLOGDATA(FOREIGNKEY)COLUMNS;
SQL>ALTERSYSTEMSWITCHLOGFILE;
(Optional)AddOracleDDLreplicationsupport
4)Onthesourcesystem,gotoOGGdirectory,connecttodatabaseusingSQL*PlusasSYSDBA.
SQL>GRANTEXECUTEONutl_fileTOggs;
5Onthesourcesystem,runthefollowingscript,provideOGGuser'ggs'asprompted.
SQL>@marker_setup.sql
SQL>@ddl_setup.sql
NOTE:
enter'INITIALSETUP'whenpromptedforthemodeofinstallation.
SQL>@role_setup.sql
SQL>@ddl_enable.sql
SQL>@ddl_pinggs
NOTE:
'ggs'hereistheOGGuser.
第四阶段:
配置源端的extractgroup
1)Issuethefollowingcommandtologontothedatabase.
GGSCI>DBLOGINUSERIDggs,PASSWORDggs
2)CreateaprimaryExtractgroup'myext':
GGSCI>ADDEXTRACTmyext,TRANLOG,BEGINNOW,THREADS2
NOTE:
THREADSvalueisthenumberofyourRACinstances.
3)Createalocaltrail.TheprimaryExtractwritestothistrail,andthedata-pumpExtractreadsit.
GGSCI>ADDEXTTRAIL/cloudfs/goldengate/dirdat/et,EXTRACTmyext
NOTE:
'et'istheexampletrailidentifierforExtract'myext'.
4)CreateandedittheparameterfileforExtract'myext':
GGSCI>EDITPARAMSmyext
Addfollowinglinestothisparameterfile:
EXTRACTmyext
SETENV(ORACLE_HOME="/u01/app/oracle/product/11.2.0/dbhome_1")
USERIDggs@ggdb,PASSWORDggs
TRANLOGOPTIONSDBLOGREADER
THREADOPTIONSMAXCOMMITPROPAGATIONDELAY20000
EXTTRAIL/cloudfs/goldengate/dirdat/et
DYNAMICRESOLUTION
DDLINCLUDEALL
TABLEhr.*;
NOTE1:
makesuretheSQL*Netconnectionstring'ggdb'works.
NOTE2:
'hr'istheexampleschemawhichwillbesynchronizedtothetargetsystem.
第五阶段:
在源端配置datapumpextractgroup
1)Createadatapumpgroup'mypump':
GGSCI>ADDEXTRACTmypump,EXTTRAILSOURCE/cloudfs/goldengate/dirdat/et,BEGINnow
2)Specifyaremotetrailthatwillbecreatedonthetargetsystem.
GGSCI>ADDRMTTRAIL/mycloudfs/goldengate/dirdat/rt,EXTRACTmypump
NOTE:
'rt'istheexampletrailidentifierforExtract'mypump',andusethetargetOGGdirectory'/mycloudfs/goldengate'here.
3)CreateandedittheparameterfileforExtract'mypump':
GGSCI>EDITPARAMSmypump
Addfollowinglinestothisparameterfile:
EXTRACTmypump
RMTHOSTrac12box-scan,MGRPORT7809
RMTTRAIL/mycloudfs/goldengate/dirdat/rt
PASSTHRU
TABLEhr.*;
NOTE:
RMTHOSTisthetargethost.IfyoualsoprefertosetupHAonthetargetsystem,specifytheVIPforyourtargetsystemasRMTHOST,
otherwisejustusetheIPaddress/hostnameofyourtargetsystem.
4)StartExtract'myext'and'mypump':
GGSCI>STARTmyext
GGSCI>STARTmypump
5)CheckthestatusofOGGprocesses:
GGSCI>infoall
第六阶段:
在目标端配置Replicatgroup
1)CreateaReplicatgroup'rept',whichreadstrailsfromExtract'mypump':
GGSCI>ADDREPLICATrept,EXTTRAIL/mycloudfs/goldengate/dirdat/rt,nodbcheckpoint
2)CreateandedittheparameterfileforReplicat'rept':
GGSCI>EDITPARAMSrept
Addfollowinglinestothisparameterfile,assumethesameORACLE_HOMEandtargetdatabase'ggdb'asinsourceODAenvironment:
REPLICATrept
SETENV(ORACLE_HOME="/u01/app/oracle/product/11.2.0/dbhome_1")
USERIDggs@ggdb,PASSWORDggs
ASSUMETARGETDEFS
HANDLECOLLISIONS
REPERROR(DEFAULT,DISCARD)
DDLERRORDEFAULTDISCARD
DDLOPTIONSREPORT
DISCARDFILE/mycloudfs/goldengate/repsz.dsc,append,megabytes100
MAPhr.*,TARGEThr.*;
NOTE:
makesuretheSQL*Netconnectionstring'ggdb'works.
3)StartReplicat'rept':
GGSCI>STARTrept
4)CheckthestatusofOGGprocesses:
GGSCI>infoall
第七阶段:
验证Goldengate功能
1)Logontosourcedatabaseasuser'hr',dosomesimpleDDLandDMLoperations.
2)CheckthedatachangehasbeencapturedbyExtractonsourcesystem:
GGSCI>STATSmyext
GGSCI>STATSmypump
3)Logontotargetsystemasoracleuser,checkthestatusofReplicat'rept':
GGSCI>STATSrept
4)Comparetheoutputandmakesuredatachangeissynchronized.
5)(optional,forfurtherHAsetup)StopOGGonsourcesystem:
GGSCI>STOPmyext
GGSCI>STOPmypump
GGSCI>STOPmgr
6)(optional,forfurtherHAsetup)StopOGGontargetsystem:
GGSCI>STOPrept
GGSCI>STOPmgr
上回书说到在11gR2上配置GoldenGate,今天应要求继续贴出下篇,下面的步骤是针对GoldenGate的HA配置
第一步AddVIPresourceforOGG
1.CreatenewVIPresource,useIPaddress10.245.48.47asexample,loginasrootandrun:
#/u01/app/11.2.0/grid/bin/appvipcfgcreate-network=1-ip=10.245.48.47-vipname=ggatevip-user=root
NOTE1:
'/u01/app/11.2.0/grid'isthedefaultOracleGRIDinfrastructuresoftwaredirectory.
NOTE2:
TheexampleVIPresourcenameis'ggatevip'andwillbeusedintherestofthisdocument.
NOTE3:
-networkreferstothenetworknumber,defaultvalueis'1'.
Andyoucanfindthenetworknumberusingthiscommand:
#/u01/app/11.2.0/grid/bin/crsctlstatres-p|grep-ie.network-ie
subnet|grep-iename-iesubnet
NAME=work
USR_ORA_SUBNET=10.245.48.0
net1indicatesthisisnetwork1,andthesecondlineindicatesthesubnetonwhichtheVIPwillbecreated.
2.AlloworacleusertostarttheVIP,runthiscommandasroot:
#/u01/app/11.2.0/grid/bin/crsctlsetpermresourceggatevip-uuser:
oracle:
r-x
3.Logonasoracleuser,starttheVIPresource:
$/u01/app/11.2.0/grid/bin/crsctlstartresourceggatevip
4.ValidateVIPisrunning:
$/u01/app/11.2.0/grid/bin/crsctlstatusresourceggatevip
NAME=ggatevip
TYPE=app.appvip.type
TARGET=ONLINE
STATE=ONLINEonnode452
NOTE:
TheTARGETandSTATEshouldbothbeONLINE.
5.PingtheVIP'sIPaddress(10.245.48.47)andmakesureit'sreachable.
NOTE:
IfyoualsoprefertosetupHAontargetsystem,followthesamesteps,andmakenecessarychangestodirectory,VIPresourcename,IPaddress,etc.
第二步Developanagentscript
1.Savethescriptinafile11gr2_gg_action.scrandcopyittoOGGdirectory.
NOTE:
MakenecessarychangestoGGS_HOME(OGGdirectory)andORACLE_HOME.
2.Makesurethescriptisexecutable:
$chmod+x11gr2_gg_action.scr
NOTE:
IfyoualsoprefertosetupHAontargetsystem,followthesamesteps,andmakenecessarychangestoGGS_HOME,ORACLE_HOMEinthisfile.
第三步RegisterOGGresourceinOracleClusterware
1.RegisterOGGasaresourceinOracleClusterware:
$/u01/app/11.2.0/grid/bin/crsctladdresourceggateapp-typecluster_resource-attr"ACTION_SCRIPT=/cloudfs/goldengate/11gr2_gg_action.scr,\
CHECK_INTERVAL=30,START_DEPENDENCIES='hard(ggatevip,ora.ggdb.db)\
pullup(ggatevip)',STOP_DEPENDENCIES='hard(ggatevip)'"
NOTE1:
'ggateapp'istheexampleOGGresourcenameandwillbeusedintherestofthisdocument.
NOTE2:
'ora.ggdb.db'istheresourcenamefordatabase'ggdb'.
2.ChecktheggateappresourceisavailableasOracleClusterwareresource:
$/u01/app/11.2.0/grid/bin/crsctlstatusresourceggateapp
NAME=ggateapp
TYPE=cluster_resource
TARGET=OFFLINE
STATE=OFFLINE
NOTE:
IfyoualsoprefertosetupHAontargetsystem,followthesamesteps,andmakenecessarychangestodirectory,VIPanddatabaseresource
name,etc.
第四步StarttheOGGresource
1.Starttheresource,fromnowonyoushouldalwaysuseOracleClusterwaretostartOGG:
$/u01/app/11.2.0/grid/bin/crsctlstartresourceggateapp
2.CheckthestatusofOGGresource:
$/u01/app/11.2.0/grid/bin/crsctlstatusresourceggateapp
NAME=ggateapp
TYPE=cluster_resource
TARGET=ONLINE
STATE=ONLINEonnode452
NOTE:
TARGETandSTATEshouldbothbeONLINE.
3.CheckstatusofOGGprocesses:
GGSCI>infoall
ProgramStatusGroupLag
TimeSinceChkpt
MANAGERRUNNING
EXTRACTRUNNINGMYEXT00:
00:
07
00:
00:
04
EXTRACTRUNNINGMYPUMP00:
00:
000
0:
00:
05
NOTE:
IfyoualsoprefertosetupHAontargetsystem,followthesamesteps.
第五步.TestOGGresourcefailover
1.Logontonodesourcenodeasoracleuser:
$/u01/app/11.2.0/grid/bin/crsctlrelocateresourceggateapp-f
CRS-2673:
Attemptingtostop'ggateapp'on'node452'