操作系统版本:
数据库版本:
OGG版本:
Oracle GoldenGate Command Interpreter for SQL Server
Version 12.1.2.1.10 21604177 OGGCORE_12.1.2.1.0OGGBP_PLATFORMS_150902.1337
Windows x64 (optimized), Microsoft SQL Server on Sep 2
Operating system character set identified as GBK.
目标端:
目标端操作系统内核版本:
数据库版本:
OGG版本:
Oracle GoldenGate Command Interpreter for Oracle
Version 12.1.2.1.10 21604177 OGGCORE_12.1.2.1.0OGGBP_PLATFORMS_150902.1337_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Sep 2
Operating system character set identified as UTF-8.
原始方案
目标库sqlserver全部备库
中间库sqlserver全库恢复
中间库通过ogg原有的初始化功能初始化此表数据到目标库
初始化完成,源库和目标库建立复制关系,基于备份点启动复制进程
优化后的方案
源库直接初始化数据到目标库
目标库搭建复制进程基于初始化时间点之前启动复制进程
添加reperror (-1, discard)参数针对主机冲突异常处理
基于时间的优点
源库配置
MGR进程:
▼▼▼GGSCI (crmprddb) 2> view params mgrPORT 7809PURGEOLDEXTRACTS dirdat\cm* USECHECKPOINTS, MINKEEPDAYS 3AUTORESTART EXTRACT *, WAITMINUTES 6, RETRIES 5LAGREPORTMINUTES 5LAGCRITICALMINUTES 15
投递进程DPCRM:
▼▼▼GGSCI (crmprddb) 3> view params DPCRMEXTRACT dpcrmDISCARDFILE dirrpt\dpcrm.dsc, PURGEPASSTHRURMTHOST 192.168.***.***, MGRPORT 7809RMTTRAIL dirdat/trTABLE *.*;
抽取进程EXTCRM:
▼▼▼GGSCI (crmprddb) 6> view param EXTCRMEXTRACT extcrmSOURCEDB ggsadmin, USERID 用户名, PASSWORD 密码TRANLOGOPTIONS MANAGESECONDARYTRUNCATIONPOINTDYNAMICRESOLUTIONREPORTCOUNT EVERY 30 MINUTES, RATEDISCARDFILE dirrpt\extcrm.dsc, PURGEEXTTRAIL dirdat\cmGETUPDATEBEFORESNOCOMPRESSUPDATESNOCOMPRESSDELETESTABLE dbo.ACCOUNTBASE; --投递的表TABLE MetaDataSchema.ENTITY;
1. 增加test表表级附加日志
dblogin sourcedb test, userid test, password test
add trandata dbo. test
--查看附加日志是否添加
info trandata dbo. test
2. 将test表添加到抽取进程
edit params EXTCRM
table dbo. test;
3. 源端重启抽取进程
stop *
start *
4. 源端修改defgen配置文件,重新生成defgen文件,并传输到目标端
vi ./dirprm/defgen.prm
table dbo. test;
重新生产定义文件scp到目标端
defgen paramfile d:\ogg\dirprm\defgen.prm
5. 目标端重启crm复制进程,让新defgen文件生效
scp ./dirdef/crm.def oracle@192.168.***.***:/oracle/ogg/dirdef/
stop *
start *
6. 源库配置初始化进程
initcrm1:源端初始化进程名
intcrm1:目标端初始化进程名
▼▼▼GGSCI> ADD EXTRACT initcrm1, SOURCEISTABLEGGSCI> edit params initcrm1EXTRACT initcrm1SOURCEDB test, USERID test, PASSWORD testRMTHOST 192.168.***.***, MGRPORT 7809RMTTASK REPLICAT, GROUP intcrm1table dbo.test;
新增初始化进程intcrm1
▼▼▼GGSCI> ADD replicat intcrm1, specialrunGGSCI> edit params intcrm1SETENV (ORACLE_HOME = "/oracle/product/11.2.0" )SETENV (ORACLE_SID = "odsdb")SETENV (NLS_LANG = "American_America.AL32UTF8")REPLICAT intcrm1USERID ggsadmin, PASSWORD ggsadmin--BULKLOADSOURCEDEFS oracle/ogg/dirdef/crm.defMAP dbo.test, TARGET bi_ods. test
源端启动初始化进程
查看初始化进程执行情况
info * , task
开启初始化进程后,通过info * , task查看同步状态,初始化进程同步完成后会自动断开

基于时间启动复制进程
ADD REPLICAT CRMTEST, EXTTRAIL dirdat/tr,BEGIN 2021-05-07 17:00:00
添加主键冲突异常处理参数:
reperror (-1, discard) 此参数针对ora-00001主键冲突报错,直接跳过
▼▼▼GGSCI> dblogin userid test,password testGGSCI> ADD REPLICAT CRMTEST, EXTTRAIL dirdat/tr,BEGIN 2021-05-07 17:00:00GGSCI> edit params CRMTESTINCLUDE dirprm/upd.macSETENV (ORACLE_HOME = "/oracle/product/11.2.0")SETENV (ORACLE_SID = "odsdb")SETENV (NLS_LANG = "American_America.AL32UTF8")REPLICAT CRMTESTUSERID ggsadmin, PASSWORD ggsadminDISCARDFILE ./dircrd/CRMTEST.dsc, PURGESOURCEDEFS oracle/ogg/dirdef/crm.defSQLEXEC "ALTER SESSION SET COMMIT_WAIT = NOWAIT"BATCHSQLDBOPTIONS DEFERREFCONSTDBOPTIONS SUPPRESSTRIGGERSALLOWDUPTARGETMAPreperror (-1, discard)MAP dbo.test, TARGET bi_ods.test;
启动复制进程
删除异常处理参数
通过 info CRMTEST 查看进程同步情况,当进程同步追上以后,删除reperror (-1, discard)
参数,至此基于时间的异构数据库ogg表同步配置完成。

更多精彩干货分享
点击下方名片关注
IT那活儿





