Oracle DML/DDL同步数据(OGG_12.2_for_Windows)
OracleDML/DDL同步数据(OGG_12.2_for_Windows) 1
一、环境准备并安装GoldenGate 3
1、基本环境3
2、配置日志模式3
3、创建GoldenGate用户帐号 4
4、安装GoldenGate软件 5
5、模拟生产库,初始化数据5
二、GoldenGateDML同步配置 6
1、GoldenGateDML同步源端配置 6
1、源MGR进程 6
2、配置Extract进程组 7
3、配置Pump进程组 8
4、目标端初始化 9
2、GoldenGateDML同步目标端配置 9
1、目标端MGR进程 10
2、添加检查表 10
3、添加checkpoint表 11
4、配置目标端Peplicat进程组 11
5、可以查看checkpoint状态 12
6、验证同步12
三:GoldenGateDDL同步配置 12
1、支持DDL复制运行脚本 12
2、修改extract进程的params文件 14
3、修改目标端replicat进程的params文件 15
4、测试16
5、验证16
四、常见问题16
1)源端
IP地址:10.6.252.44
数据库:Oracle11.2.0.4
SID:cjc
操作系统版本:Windows7
ogg版本:Version12.2.0.1.1OGGCORE_12.2.0.1.0_PLATFORMS_151211.1401
ggs_Windows_x64_shiphome.zip
2)目标端
IP地址:10.11.82.56
数据库:Oracle11.2.0.4
SID:chenjch
操作系统版本:Windows7
ogg版本:Version12.2.0.1.1OGGCORE_12.2.0.1.0_PLATFORMS_151211.1401
ggs_Windows_x64_shiphome.zip
2、配置日志模式#源服务器端
(1)配置归档模式
sqlplus/assysdba
shutdownimmediate;
startupmount;
alterdatabasearchivelog;
alterdatabaseopen;
(2)配置日志模式(打开强制规档与补充日志模式)
alterdatabaseaddsupplementallogdata;
alterdatabaseforcelogging;
ALTERSYSTEMSETENABLE_GOLDENGATE_REPLICATION=TRUESCOPE=BOTH;
altersystemsetrecyclebin=offscope=spfile;
(3)查看配置结果:
SQL>selectlog_mode,supplemental_log_data_min,force_loggingfromv$database;
LOG_MODESUPPLEMEFOR
-----------------------
ARCHIVELOGYESYES
3、创建GoldenGate用户帐号su-oracle
sqlplus/assysdba;
createtablespaceogguserdatafile'D:\APP\ADMINISTRATOR\ORADATA\CJC\ogguser.dbf'size10mautoextendonnext1mmaxsizeunlimited;
createtablespaceogguserdatafile'D:\APP\ADMINISTRATOR\ORADATA\CHENJCH\ogguser.dbf'size10mautoextendonnext1mmaxsizeunlimited;
createuserogguseridentifiedbyogguser
defaulttablespaceogguser
temporarytablespacetemp;
grantconnect,resource,dbatoogguser;
4、安装GoldenGate软件ogg12版本安装是图形界面,选择安装版本(11);
D:\ogg\ggs_Windows_x64_shiphome\Disk1\setup.exe
启动图形界面后,选择
OGG目录:D:\app\Administrator\product\11.2.0\oggcore_1---需要提前创建
Oracle目录:D:\app\Administrator\product\11.2.0\dbhome_1
直接安装即可;
安装后,D:\app\Administrator\product\11.2.0\oggcore_1下会包含所有目录,无需执行createsubdirs命令;
5、模拟生产库,初始化数据建立测试用户及初始化数据
createusertestidentifiedbytest;
grantconnect,resource,dbatotest;
conntest/test
createtabletest(idnumber,namevarchar2(20));
创建包含CLOB字段的表并初始化
createtablet_clob(tidnumber,c_clobclob);
二、GoldenGateDML同步配置1、GoldenGateDML同步源端配置1)先配置DML同步
cdD:\app\Administrator\product\11.2.0\dbhome_1
ggsci.exe
dbloginuseridogguserpasswordogguser
1、源MGR进程1)编辑主进程组
editparamsmgr
PORT7809
dynamicportlist7800-8000
autorestartextract*,retries5,waitminutes2,resetminutes5
PURGEOLDEXTRACTS./dirdat/*,usecheckpoints,minkeepdays7
LAGREPORTHOURS1
LAGINFOMINUTES30
LAGCRITICALMINUTES45
说明:
port指定mgr进程通信端口
dynamicportlist表示mgr进程可以为源与目的端动态通信指定端口,ogg12已经废弃;
autorestartextract*表示自动重启extract进程组,每2分钟尝试重启所有进程,重试5次,每5分钟清零。
minkeepdays7队列传递结束后,依然保留本地队列7天
LAGREPORTHOURS1/*每隔1小时检查延迟报告
LAGINFOMINUTES30/*每隔30分钟检查延迟,如果超过延迟阈值,将写入错误日志
LAGCRITICALMINUTES45/*延迟阈值45分钟
2)启动主管理进程
startmgr
2、配置Extract进程组1)编辑配置文件
editparamext1
extractext1
setenv(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
useridogguser,passwordogguser
exttrailD:\app\Administrator\product\11.2.0\oggcore_1\dirdat\yd
tabletest.*;
说明:
extractext1定义extract进??名字
dynamicresolution
setenv设置环境变量
userid登录数据库
exttrail指定本地trail文件地址
table定义同步的表
AMERICAN_AMERICA.AL32UTF8实验环境的字符集,可用SELECTuserenv('language')fromdual;查出
TRANLOGOPTIONSCONVERTUCS2CLOBSclob大字段的转换
GETTRUNCATES获取Truncate操作
tranlogoptionsrawdeviceoffset0/*裸设备文件偏移量(AIX系统专有参数),此实验不用
2)添加抽取进程
addextractext1,tranlog,beginnow
3)添加本地trail文件
addexttrailD:\app\Administrator\product\11.2.0\oggcore_1\dirdat\yd,extractext1
说明:
创建本地trail文件,主extract进程负责写这部分文件,pump负责把这部分文件传到目标服务器端。
4)启动服务
startextractext1
3、配置Pump进程组1)编辑配置文件
editparamextpump
extractextpump
dynamicresolution
passthru
rmthost10.11.82.56,mgrport7809,compress
rmttrailD:\app\Administrator\product\11.2.0\oggcore_1\dirdat\mb
tabletest.*;
2)添加pump进程
addextractextpump,exttrailsourceD:\app\Administrator\product\11.2.0\oggcore_1\dirdat\yd
3)添加远程trail文件
addrmttrail/ogg/app/oracle/dirdat/mb,extractextpump
说明:指定远程trail文件
4)启动pump进程
startextractextpump
至此:源端配置完成,查看相关进程是剖正常启动
命令:
infoall查看所有进程的状态
viewreportext1可查看失败进程的报错
4、目标端初始化建立测试用户及初始化数据
createusertestidentifiedbytest;
grantconnect,resource,dbatotest;
conntest/test
createtabletest(idnumber,namevarchar2(20));
创建包含CLOB字段的表并初始化
createtablet_clob(tidnumber,c_clobclob);
2、GoldenGateDML同步目标端配置安装ogg软件,安装目录和原服务器一样,安装过程忽略
数据库上进行配置,创建用户,授权
createuserogguseridentifiedbyogguser
defaulttablespaceogguser
temporarytablespacetemp;
grantconnect,resource,dbatoogguser;
1、目标端MGR进程cdD:\app\Administrator\product\11.2.0\dbhome_1
ggsci.exe
dbloginuseridogguserpasswordogguser
1)编辑配置文件
editparammgr
port7809
dynamicportlist7800-8000
autostarter*
autorestartextract*,waitminutes2,resetminutes5
lagreporthours1
laginfominutes3
lagcriticalminutes5
purgeoldextractsD:\app\Administrator\product\11.2.0\oggcore_1\dirdat\rt*,usecheckpoints,minkeepdays3
2)启动
startmgr
2、添加检查表说明:当我们在GLOBALS文件里指定了默认的checkpoint之后,新的Replicatgroups在创建时会自动使用这个参数,不需要其他指令
1)编辑全局配置文件
GGSCI(dg2)4>editparam./GLOBALS
CHECKPOINTTABLEogguser.checkpoint
2)exit#这里需要退出ggsci终端
3、添加checkpoint表./ggsci
GGSCI(dg2)1>dbloginuseridogguserpasswordogguser
GGSCI(dg2asogguser@mbdb)2>addcheckpointtableogguser.checkpoint
4、配置目标端Peplicat进程组1)编辑配置文件
editparamsrepl
replicatrepl
useridogguser,passwordogguser
reperrordefault,discard
discardfileD:\app\Administrator\product\11.2.0\oggcore_1\dirrpt\repl.dsc,append,megabytes4096----megabytes只过小可能会导致repl无法启动
maptest.*,targettest.*;
2)添加复制进程
addreplicatrepl,exttrailD:\app\Administrator\product\11.2.0\oggcore_1\dirdat\mb,CHECKPOINTTABLEogguser.checkpoint
3)启动进程
startrepl-----aftercsn
5、可以查看checkpoint状态su-oracle
sqlplusogguser/ogguser
SQL>selecttnamefromtab;
TNAME
-------------------------------------
CHECKPOINTTABLE
CHECKPOINT_LOXTABLE
select*fromcheckpoint;
注1:ogg_11.1.1.1.2只有CHECKPOINT一张表。
注2:ogg_11.2.x.x.1之后的版本有CHECKPOINT,CHECKPOINT_LOX两张表。
查看相关进程是否正常启动
infoall
6、验证同步源端对test用户下所有表进行insert,update,delete操作,确保目标端可以正常同步所有DML操作产生的数据;
三:GoldenGateDDL同步配置1、支持DDL复制运行脚本#服务器源端配置
1)指定数据库模式
D:\app\Administrator\product\11.2.0\oggcore_1\ggsci.exe
GGSCI(dg1)1>editparam./GLOBALS
ggschemaogguser
GGSCI(dg1)3>stopmgr
2)安装DDL对象
进入到ogg的安装目录,此实验为D:\app\Administrator\product\11.2.0\oggcore_1
sqlplus/assysdba
SQL>grantdbatoogguser;
SQL>@marker_setup说明:均指定用户ogguser
SQL>@ddl_setup说明:11.1.1.2需要手动输入ogguser,INITIALSETUP,yes
SQL>@role_setup
SQL>grantGGS_GGSUSER_ROLEtoogguser;
SQL>@ddl_enable
SQL>@marker_status.sql
注1:执行dbmspool包将在数据库中创建DBMS_SHARED_POOL包,之后ddl_pin包需要用到
SQL>@?/rdbms/admin/dbmspool.sql
注2:执行ddl_pin.sql通过dbms_shared_pool.keep存储过程将DDLReplication相关对象keep在共享池中,以保证这些对象不RELOAD,提升性能。
SQL>@ddl_pin.sqlogguser
2、修改extract进程的params文件#服务器源端配置
#source端修改extract进程的params文件,添加"ddlincludeall"参数,重启extract进程
1)停止ext1进程
GGSCI(test)2>stopextractext1
2)编辑配置文件
GGSCI(test)3>editparamsext1
extractext1
dynamicresolution
setenv(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
useridogguser,passwordogguser
exttrail/ogg/app/oracle/dirdat/yd
reportat1:00
reportrolloverat1:00
ddlincludeall
ddloptionsaddtrandata,report
GETTRUNCATES
TRANLOGOPTIONSCONVERTUCS2CLOBS
tabletest.*;
#说明:加了两行tranlogoption与ddl
3)启动mgr,eora进程
GGSCI(test)4>startmgr
GGSCI(test)5>startextractext1
4)查看进程启动情况
GGSCI(test)6>infoextractext1
3、修改目标端replicat进程的params文件#目标服务器配置
#target端修改replicat进程的params文件,
添加"ddlerrordefaultignoreretryopmaxretries3retrydelay5"等参数,重启replicat进程,操作如下
1)停止mgr进程
GGSCI(slave)1>stopmgr
2)停止repl进程
GGSCI(slave)1>stopreplicatrepl
3)编辑repl配置文件
GGSCI(slave)1>editparamsrepl
GGSCI(slave)2>viewparamsrepl
replicatrepl
useridogguser,passwordogguser
reperrordefault,discard
discardfileD:\app\Administrator\product\11.2.0\oggcore_1\dirrpt\repl.dsc,append,megabytes4096
ddloptionsreport
ddlerrordefaultignoreretryopmaxretries3retrydelay5
ddlerrordefaultdiscard
ddlerrordefaultignoreretryop
maptest.*,targettest.*;
4)启动rora_t1进程
GGSCI(slave)4>startmgr#会自动启动repl进程
GGSCI(slave)5>inforeplicatrepl
4、测试在源端test用户创建一个表,查看目标端是否成功创建。
createtablet1(idnumber);
5、验证在目标端查看t1表及数据是否同步过来
四、常见问题问题一:
insert和delete可以同步,update不能同步;
解决方案:
ggsci>dbloginuseridgg,passwordgg
ggsci>addtrandatatest.*
问题二:
repl进程无法启动
查看日志
D:\app\Administrator\product\11.2.0\oggcore_1\ggserr.log
D:\app\Administrator\product\11.2.0\oggcore_1\dirrpt\repl.dsc
megabytes值过小,可能会引起rep1进程ABENDED;
欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。