凌晨三点,报警器第5次响起——生产线实时数据同步又断了!老板的夺命Call在静夜里炸响:“停机?停一小时损失200万!”
别慌,用OGG的这把“手术刀”,全量+增量同步无缝切换,业务零感知。今天揭秘:如何让Oracle到Kafka的血液,在心脏不停跳时完成移植。
接下来小编就叫你如何实现OGG技术同步Oracle 10PB的数据到Kafka,不停机的情况下如何全量+增量!
GGSCI>ADD EXTRACT EXT, TRANLOG BEGIN NOW GGSCI> ADD EXTTRAIL ./dirdat/aa, extract EXT, megabytes 2000 EXTRACT EXT USERID ggs, PASSWORD ggpwd EXTTRAIL ./dirdat/aa TABLE SRC.*; GGSCI> Start Extract EXT
Get the current SCN on the source database: SQL> select dbms_flashback.get_system_change_number from dual; GET_SYSTEM_CHANGE_NUMBER ------------------------ 3410138433
GGSCI>ADD EXTRACT <initial-load Extract>, SOURCEISTABLE SOURCEISTABLE USERID gg, PASSWORD gg EXTFILE /gg/dirdat/rf , maxfiles 10, megabytes 2000 or RMTFILE /gg/dirdat/rf, maxfiles 10, megabytes 2000 TABLE SRC.*, SQLPREDICATE 'AS OF SCN 3410138433';
ggsci> ADD REPLICAT rkafka, EXTTRAIL /gg/dirdat/rf, NODBCHECKPOINT REPLICAT rkafka setenv(OGG_HOME='/u01/app/oracle/goldengate/ogg_home/12.3.1.1/GGBD/') TARGETDB LIBFILE libggjava.so SET property=dirprm/kafka.props REPORTCOUNT EVERY 1 MINUTES, RATE GROUPTRANSOPS 10000 MAP SRC.*, TARGET KAFKAADMIN.*;
GGSCI> ADD REPLICAT REP, EXTTRAIL ./dirdat/aa, nodbcheckpoint REPLICAT RPKAFKA USERID ggs, PASSWORD ggpwd setenv(OGG_HOME='/u01/app/oracle/goldengate/ogg_home/12.3.1.1/GGBD/') TARGETDB LIBFILE libggjava.so SET property=dirprm/kafka.props REPORTCOUNT EVERY 1 MINUTES, RATE GROUPTRANSOPS 10000 MAP SRC.*, TARGET KAFKAADMIN.*; GGSCI> Start replicat REP, aftercsn 3410138433
这场与数据的赛跑,没有停机倒计时,只有分秒必争的精准刀法。全量迁移是筑基,增量同步是续命,OGG的接力棒从未掉落。当最后一条数据滑入Kafka,晨光刺破监控室的黑暗,你按下“同步完成”的绿灯——产线依旧轰鸣,报表准时生成,老板的手机安静如初。
所谓DBA的高光时刻,不过是把惊心动魄的战役,藏进风平浪静的黎明。技术人的浪漫,是让每一次数据迁徙,都像从未发生过那样完美无声。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69947868/viewspace-3092151/ ,如需转载,请注明出处,否则将追究法律责任。