ogg初始化数据+增量同步(表必须有主键或是唯一性索引)
同步先做增量通过,然后再做数据初始化,增量和数据初始化的复制进程都需要加上handlecollisions,下面以oracle同步到mysql为例
#####################先做增量同步############################
主库
抽取进程
GGSCI (host02) 15> EDIT PARAMS extep
添加如下内容:
EXTRACT extep
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID goldengate, PASSWORD goldengate
EXTTRAIL ./dirdat/ep
TABLE hxl.metric;
执行如下命令
GGSCI (host01) 2> ADD EXTRACT extep, TRANLOG, BEGIN NOW
EXTRACT added.
GGSCI (host01) 3> add EXTTRAIL ./dirdat/ep, EXTRACT extep, MEGABYTES 100
EXTTRAIL added.
启动抽取进程
GGSCI (host01) 4> START EXTRACT extep
配置pump(传递)进程
GGSCI (host01) 8> EDIT PARAMS dpep
EXTRACT dpep
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
PASSTHRU
RMTHOST 192.168.1.135, MGRPORT 7809
RmtTrail ./dirdat/ep
TABLE hxl.metric;
GGSCI (host01) 8> ADD EXTRACT dpep, EXTTRAILSOURCE ./dirdat/ep
EXTRACT added.
GGSCI (host01) 10> add rmttrail ./dirdat/ep, EXTRACT dpep, MEGABYTES 100
RMTTRAIL added.
启动
GGSCI (host01) 11> START EXTRACT dpep
Sending START request to MANAGER ...
EXTRACT PORA_1 starting
从库
GGSCI > add replicat repep, exttrail ./dirdat/ep,checkpointtable db_oggadmin.checkpoint
REPLICAT added.
GGSCI (host02) 3>EDIT PARAM repep
replicat repep
--sourcedefs /u01/goldengate19c_for_mysql/dirdef/defgen.prm
SETENV (MYSQL_UNIX_PORT=/opt/mysql5727/mysql.sock)
targetdb db_hxl@localhost:3306 userid goldengate, password mysql
reperror default, discard
gettruncates
assumetargetdefs
handlecollisions
discardfile ./dirrpt/repep.dsc,APPEND,MEGABYTES 1000
MAP hxl.metric,TARGET db_hxl.metric;
启动
GGSCI (host02) 4> START REPLICAT repep
#####################初始化同步(数据落地方式)############################
初始化同步会包含增量之前的数据以及增量同步的数据,这样的话同步是有重复的,加上handlecollisions参数的目的是遇到重读的不处理
主库
1.编辑初始化抽取进程参数
GGSCI>edit params ext_init
EXTRACT ext_init
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID goldengate, PASSWORD goldengate
RMTHOST 192.168.1.135, MGRPORT 7809
rmtfile ./dirdat/ei, maxfiles 999999, megabytes 1500, append
TABLE hxl.metric;
2.添加抽取进程并启动
GGSCI>add extract ext_init, SOURCEISTABLE
GGSCI>start ext_init
从库
1.创建初始化复制进程
GGSCI>edit params rep_init
replicat rep_init
--sourcedefs /u01/goldengate19c_for_mysql/dirdef/defgen.prm
SETENV (MYSQL_UNIX_PORT=/opt/mysql5727/mysql.sock)
targetdb db_hxl@localhost:3306 userid goldengate, password mysql
reperror default, discard
handlecollisions
discardfile ./dirrpt/rep_init.dsc,APPEND,MEGABYTES 1000
MAP hxl.metric,TARGET db_hxl.metric;
2.添加checkpoint
GGSCI > dblogin sourcedb db_hxl@192.168.1.135:3306 userid goldengate password mysql
Successfully logged into database.
GGSCI (host135 DBLOGIN as goldengate) 47> add checkpointtable db_oggadmin.checkpoint
Successfully created checkpoint table db_oggadmin.checkpoint.
加入到全局文件
GGSCI > edit params ./GLOBALS
checkpointtable db_oggadmin.checkpoint
3.添加复制进程
GGSCI > add replicat rep_init, exttrail ./dirdat/ei,checkpointtable db_oggadmin.checkpoint
REPLICAT added.
4.启动
GGSCI>start rep_init
检查数据应用完成后需要手工停掉复制进程并删除
GGSCI>stop rep_init
GGSCI>delete replicat rep_init
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2019-03-14 sshpass安装使用