Oracle12C ogg配置
配置OGG安装目录的共享:
这里的共享就是把OGG安装到一个共享的设备上,把该目录同时挂到不同节点的相同位置上,这样当
一个节点挂了之后,可以在另一个节点启动和维护OGG。
所以我们上面在配置的时候,才会同时在2个节点操作,并且参数名称也一致。如果不考虑这种冗余
的方案,可以直接在其中一个节点上操作,不用搞的这么麻烦。
我们这里就在一个节点操作,不搞那么复杂了,这里仅说明一下。
上面的配置完成之后,就和我们单实例操作类似了。不过在参数配置这块会有细微区别。
--此处安装的是Version 12.2.0.1.1 OGGCORE_12.2.0.1.0_PLATFORMS_151211.1401_FBO 可以去oracle官网下载
--目标和原库都要配置
sql>altersystemsetenable_goldengate_replication=true;
Source系统设置
解压缩ogg安装包
#su-oracle
unzipfbo_ggs_Linux_x64_shiphome.zip
cdfbo_ggs_Linux_x64_shiphome/Disk1/
./runInstaller
在bash_profile中添加OGG_HOME
exportOGG_HOME=$ORACLE_BASE/ogg
exportPATH=$ORACLE_HOME/bin:$PATH:$OGG_HOME
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$OGG_HOME:/lib:/usr/lib
aliasggsci='rlwrap/u01/app/oracle/ogg/ggsci'
开启数据库级别日志补充
SYS@devdb1>ALTERDATABASEFORCELOGGING;
SYS@devdb1>ALTERDATABASEADDSUPPLEMENTALLOGDATA;
SYS@devdb1>ALTERSYSTEMARCHIVELOGCURRENT;
Systemaltered.
SYS@devdb1>colopen_modefora10
SYS@devdb1>SELECTname,open_mode,force_logging,supplemental_log_data_minFROMv$database;
创建测试用户
SYS@devdb1>connnew_jk/XH1Q2W3E4R@PDBJK
SNOW@devdb1>CREATETABLEt1(idINTPRIMARYKEY,nameVARCHAR2(10));
12csource库需要在root容器中创建OGG管理用户(12c使用intergated extract 需要在cdb创建管理用户)
conn/assysdba
sql>conn/assysdba
Connected.
sql>createuserC##GGADMINidentifiedbyggadmin;
Usercreated.
sql>execdbms_goldengate_auth.grant_admin_privilege('C##GGADMIN',container=>'ALL');
PL/sqlproceduresuccessfullycompleted.
sql>grantdbatoc##ggadmincontainer=all;
Grantsucceeded.
sql>connectc##ggadmin/ggadmin
设置全局参数
oggglobal
GGSCI>EDITPARAMS./GLOBALS
GGSCHEMAc##ggadmin
Target系统设置
vi/home/oracle/.bash_profile
altersessionsetcontainer=pdb1;
connjktmp/jktmp1@jktmp
createtablet1(idintprimarykey,namevarchar2(20));
12ctarget库需要在pdb中创建OGG管理用户及其表空间
altersessionsetcontainer=pdb1;
CREATETABLESPACEgoldengateDATAFILE'/data/oradata/jktmp/goldengate01.dbf'SIZE100mAUTOEXTENDON;
CREATEUSERoggadminIDENTIFIEDBYoggadminDEFAULTTABLESPACEgoldengate;
GRANTdbaTOoggadmin;
GGSCHEMAoggadmin
配置管理进程
GGSCI>EDITPARAMMGR
PORT7809
AUTOSTARTEXTRACT*
AUTORESTARTEXTRACT*,RETRIES3,WAITMINUTES5,RESETMINUTES10
开启表级别日志补充需要加上PDB,追加对象为用户pdbjk.new_jk下所有表
DBLOGINUSERIDc##ggadmin,PASSWORDggadmin
ADDSCHEMATRANDATApdbjk.new_jk
ADDTRANDATApdbjk.new_jk.*
创建初级集成提取组ex1,源端是双节点RAC
ADDEXTRACTex1,integratedTRANLOG,BEGINNOW
为初级提取组ex1指定本地trail文件(extract文件量比较大的话,需要足够的磁盘)
ADDEXTTRAIL/u01/app/oracle/ogg/dirdat/ex,EXTRACTex1MEGABYTES5
注册extractex1
REGISTEREXTRACTex1DATABASECONTAINER(pdbjk)
--配置初级提取组参数文件enableddlreplicate(ddlincludeall)
GGSCI>EDITPARAMSex1
EXTRACTex1
SETENV(ORACLE_SID='sidjk1')
USERIDc##ggadmin,255);">EXTTRAIL/u01/app/oracle/ogg/dirdat/ex
--ddlincludeall
ddloptionsreport
TABLEpdbjk.new_jk.*;
创建投递组dp1,设置本地trail文件
ADDEXTRACTdp1EXTTRAILSOURCE/u01/app/oracle/ogg/dirdat/ex
为投递进组dp1设置target端trail文件地址
ADDRMTTRAIL/u01/app/oracle/ogg/dirdat/jk/rt,EXTRACTdp1
配置投递组dp1参数文件
GGSCI>EDITPARAMSdp1
EXTRACTdp1
RMTHOST10.180.100.9,MGRPORT7809
RMTTRAIL/u01/app/oracle/ogg/dirdat/jk/rt
pdbjk.new_jk.*;
Target系统
AUTOSTARTREPLICAT*
AUTORESTARTREPLICAT*,WAITMINUTES2,RETRIES5
创建检查点表
DBLOGINUSERIDoggadmin@jktmp,PASSWORDoggadmin
ADDCHECKPOINTTABLEoggadmin.checkpointtable
在全局环境中添加检查点表
EDITPARAMS./GLOBALS
CHECKPOINTTABLEoggadmin.checkpointtable
创建复制组rt1,设置读取trail文件路径以及检查点表加上PDB
ADDREPLICATrt1,EXTTRAIL/u01/app/oracle/ogg/dirdat/pdb1.oggadmin.checkpointtable
为复制组rt1配置参数文件初始化的时候加上HANDLECOLLISIONS,初始化之后去掉
GGSCL>EDITPARAMrt1
REPLICATSETENV(ORACLE_SID='xhtmp')
USERIDoggadmin@jktmp,0);">HANDLECOLLISIONS
ASSUMetaRGETDEFS
ddloptionsreport
DISCARDFILE/u01/app/oracle/ogg/discards.dsc,append,megabytes1024
TABLEEXCLUDEpdbjk.new_jk.SYS_EXPORT_SCHEMA*
MAPpdbjk.new_jk.*,TARGETjktmp.*;
测试环节
启动source管理进程
GGSCI(node1.localdomain)1>STARTMGR
启动target管理进程
GGSCI(oggtarget)1>STARTMGR
启动source提取进程
GGSCI(node1.localdomain)2>STARTEX1
启动source投递进程
GGSCI(node1.localdomain)3>STARTDP1
--初始化数据导出的时候指定flashback_scn
SELECTcurrent_scnFROMv$database
expdpnew_jk/XH1Q2W3E4R@pdbjkdirectory=dump_dirdumpfile=new_jk20160526.dumplogfile=new_jk20160526.logencryption_password=12qw3edcflashback_scn=7851588331compression=all
impdpjktmp/jktmp@jktmpDIRECTORY=dump_dirinclude=tabledumpfile=new_jk20160526.dumplogfile=new_jk20160526.logremap_schema=new_jk:jktmpremap_tablespace=new_jk:jktmp,idx_newjk:jktmp,sit_jk:jktmp,JK_MIGR:jktmpencryption_password=12qw3edcTABLE_EXISTS_ACTION=truncate
启动target复制进程
GGSCI(oggtarget)2>startreplicatrt1,0);">aftercsn7863029544
确认source进程状态
GGSCI(node1.localdomain)4>INFOALL
ProgramStatusGroupLagatChkptTimeSinceChkpt
MANAGERRUNNING
EXTRACTRUNNINGDP100:00:0000:00:08
EXTRACTRUNNINGEX100:00:0000:00:03
确认target进程状态
GGSCI(oggtarget)3>INFOALL
REPLICATRUNNINGRT100:00:0000:00:02
源端节点node1插入数据
SNOW@devdb1>insertintot1values(1,'SNOW');
SNOW@devdb1>commit;
源端节点node2插入数据
SNOW@devdb2>insertintot1values(2,'LILY');
SNOW@devdb2>commit;
复制端验证
SNOW@oggtarget>select*fromt1;
IDNAME
----------------------------------------
1SNOW
2LILY
实验结束。
OracleGoldenGate是一个轻量级软件,在Oracle数据库上安装配置是一种松耦合的状态,这点非常理想。无论是在单实例环境还是多实例的RAC环境只需要做少量的配置就可以生效,软件的启动和关闭也不需要数据库做任何设置。从安装的角度来说,比DataGuard要轻便的多。DataGuard是一种“侵入式”配置。需要修改Oracle本身的配置文件。
---转载于http://blog.csdn.net/cloudsnowe/article/details/51613364---