news 2026/10/20 19:05:16

基于Linux环境使用ogg19版本从oracle 19c ADG备库远程同步数据

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于Linux环境使用ogg19版本从oracle 19c ADG备库远程同步数据

基于Linux环境使用ogg19版本对oracle 19c同步数据

在之前一期文章中提到了 “基于Windows测试OGG远程从ADG备库抽取数据”。文章的最后提到了在Linux环境测试失败的情况,在这一期的文章中测试了Linux环境,但是使用的数据库版本和OGG版本均是19的。之前那一期的数据库版本是11.2.0.4 ,ogg版本是12.1.0.1。有可能是因为版本的问题导致。

此次案例测试中,数据可以成功抽取成功。

说明:代码有些部分对不上,是因为测试过程种来回切换,有些关键字也虚拟模糊了,步骤和方法是正确的。

静默安装OGG

./runInstaller -silent -nowait -responseFile /so/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp

数据库ADG搭建请翻阅前面的文章

链接: oracle 19c搭建dataguard(ADG)全过程

源端和目标端创建OGG同步用户

源端(10.120.84.25)和目标端创建同步管理账号 --84.25 create tablespace tbsogg datafile '+DATA/xx/DATAFILE/tbsogg.dbf' size 1024m autoextend on next 10m; --103.54 create tablespace tbsogg datafile 'D:\APP\ADMINISTRATOR\ORADATA\xxx\tbsogg01.dbf' size 1024m autoextend on next 10m; create user ggs identified by xxx default tablespace tbsogg temporary tablespace temp; grant connect ,resource,unlimited tablespace to ggs; grant execute on utl_file to ggs; grant select any dictionary,select any table to ggs; grant alter any table to ggs; grant flashback any table to ggs; grant execute on dbms_flashback to ggs; grant execute on sys.DBMS_STREAMS to ggs; grant execute on dbms_xstream_gg_adm to ggs; grant execute on DBMS_CAPTURE_ADM to ggs; grant SELECT ANY TRANSACTION to ggs; EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('ggs'); grant execute on sys.DBMS_STREAMS to ggs; grant execute on dbms_xstream_gg_adm to ggs; grant execute on dbms_streams_adm to ggs; grant execute on DBMS_CAPTURE_ADM to ggs; grant execute on dbms_xstream_gg_adm to ggs; grant SELECT ANY TRANSACTION to ggs;

数据库连接串配置

#primary ORA104 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.104)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = woo) ) ) #standby ORA105 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.105)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = woo) ) )

MGR进程配置

port 5000 dynamicportlist 5001-5050 autorestart extract *,retries 5,waitminutes 3 purgeoldextracts ./dirdat/*, usecheckpoints,minkeepdays 3 accessrule, prog *, ipaddr *, allow lagreporthours 1 laginfominutes 30 lagcriticalminutes 45

创建OGG登录别名

--创建用户凭证别名 add credentialstore --创建到源端的登录别名 --登录源端主库别名 alter credentialstore add user ggs@xxx, password Caecaodb2017 alias xx alter credentialstore add user ggs@xxx, password Caecaodb2017 alias xx alter credentialstore add user ggs@xxx, password Caecaodb2017 alias xxx --登录源端备库别名 alter credentialstore add user ggs@xxx, password Caecaodb2017 alias xxx alter credentialstore add user ggs@xxx, password Caecaodb2017 alias xxx alter credentialstore add user ggs@xxx, password Caecaodb2017 alias xxx --目标端登录别名 alter credentialstore add user ggs@xxx, password Caecaodb2017 alias xx --测试验证 dblogin useridalias xxx

添加抽取进程

add extract escims3, tranlog, begin now, threads 1 <<<<< 如果是RAC,修改为2 add exttrail ./dirdat/e3, extract escims3, megabytes 50 edit params escims3 extract escims3 SETENV (TNS_ADMIN='/app/oracle/product/19.3.000/db_home/network/admin') userid ggs@ora105, password xxxx exttrail ./dirdat/e3 discardfile ./dirrpt/escims3.dsc, append, megabytes 20 discardrollover at 05:30 on monday warnlongtrans 3h, checkinterval 10m tranlogoptions logretention enabled tranlogoptions dblogreader tranlogoptions minefromactivedg --tables table ggs.testtab;

添加应用进程(有些关键字做了虚拟)

dblogin useridalias xxxx add checkpointtable ggs.xxxx --非并行进程 add replicat rs3t, exttrail ./dirdat/e3, checkpointtable ggs.xxxx edit param rs3t replicat rs3t useridalias xxxx discardfile ./dirrpt/rs3t.dsc, append, megabytes 100 discardrollover at 05:30 on monday --tables gettruncates map ggs.testtab ,target maintain.testtab;

数据初始化的方式有2种

>>>>> 数据初始化 数据泵初始化方式 SET NUMWIDTH 20; select current_scn from v$database; 12346555158664 expdp \"/ as sysdba\" dumpfile=testtabt320251103.dmp logfile=exptesttabt320251103.log exclude=statistics ggs.testtab flashback_scn=21870773 (根据同步当时获取的值填写) 目标端 10.128.103.54 导入数据 impdp \"/ as sysdba\" dumpfile=testtabt320251103.dmp logfile=imptesttabt320251103.log remap_schema=ggs:testtab table_exists_action=truncate >>>>> 数据初始化 load init方式 add extract ext_init,sourceistable 参数配置 edit param ext_init extract ext_init SETENV (TNS_ADMIN='/OSdata/oraclient/instantclient_19_28/network/admin') useridalias SCIMS8422 rmthost 10.10.1.1, mgrport 5000 rmttask replicat,group rep_init table ggs.testtab; add replicat rep_init,specialrun edit param rep_init replicat rep_init useridalias tn_ncdb10338 assumetargetdefs discardfile ./dirrpt/rep_init.dsc, append, megabytes 100 map ggs.testtab, target maintain.testtab;

测试数据

GGSCI (ora19 as ggs@woo) 27> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING ESCIMS3 00:00:01 00:00:02 GGSCI (ora19 as ggs@woo) 28> stats escims3,daily Sending STATS request to EXTRACT ESCIMS3 ... Start of Statistics at 2025-11-05 21:34:07. Output to ./dirdat/e3: Extracting from GGS.TESTTAB to GGS.TESTTAB: *** Daily statistics since 2025-11-05 21:33:46 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total upserts 0.00 Total discards 0.00 Total operations 1.00 End of Statistics. GGSCI (ora19 as ggs@woo) 29> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING ESCIMS3 00:00:00 00:00:09
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/20 19:05:12

构建可配置的金融K线图形比对系统:架构、索引与实时分类

1. 为什么需要一套独立的图形比对系统先说清楚我做这件事的起因。去年在某市场分析平台做技术顾问时&#xff0c;团队里几位研究型用户每天最耗时的工作之一&#xff0c;就是手动翻K线图找“历史上有没有出现过类似的走势结构”。他们的口径五花八门&#xff1a;有的说“要找20…

作者头像 李华
网站建设 2026/10/20 19:04:36

Scrapy LinkExtractor实战指南:详解参数、过滤规则与常见坑

写爬虫最烦的事情之一&#xff0c;就是页面里全是无关链接。你只想抓正文区的文章&#xff0c;结果导航栏、页脚、分享按钮、广告位全给抓进来了&#xff0c;爬虫跟个无头苍蝇一样满站乱窜。Scrapy里真正负责干这事的组件叫LinkExtractor&#xff0c;它决定哪些链接会被提取、进…

作者头像 李华
网站建设 2026/10/20 19:04:34

C/C++内存管理全解析:从虚拟地址空间到智能指针

我们手上的C语言项目跑了一段时间后&#xff0c;内存占用悄悄涨到停不下来&#xff0c;什么业务都没干&#xff0c;进程却像漏水的桶一样越积越多。排查到最后&#xff0c;问题不在代码逻辑&#xff0c;而是堆上频繁的小对象分配释放把内存区域拆得七零八落&#xff0c;碎片多到…

作者头像 李华
网站建设 2026/10/20 19:04:16

大模型推理源码解析:从Transformer结构到KV cache优化实践

1. 从推理视角理解大模型的整体骨架1.1 大模型到底在“算”什么很多人把大模型想象成一个黑盒子&#xff1a;输入一句话&#xff0c;输出一段文字。但如果你真正读过源码&#xff0c;你会发现它的底层逻辑其实非常朴素——大模型本质上就是一个不断预测下一个词的概率分布的函数…

作者头像 李华
网站建设 2026/10/20 19:03:48

基于改进鲸鱼算法的六自由度机械臂3-5-3多项式时间最优轨迹规划

机械臂的轨迹规划&#xff0c;说白了就是在“怎么走”和“走多快”之间做交易。生产线节拍压得紧&#xff0c;机械臂末端就得跑得更快&#xff0c;但速度一上来&#xff0c;关节的冲击和振动也跟着上来&#xff0c;时间久了螺丝都能给你抖松。我做过的一个很典型的项目——基于…

作者头像 李华
网站建设 2026/10/20 19:03:13

污水处理厂出水预测:从数据清洗到LSTM模型的实战解析

论文阅读 | 污水处理厂出水预测1 前两天在整理文献时又翻到一篇关于污水处理厂出水预测的文章&#xff0c;这已经不是我第一次碰这类题目了。之前做过几个相关的小项目&#xff0c;踩过不少坑&#xff0c;所以看到这个标题的时候特别有感触——污水出水预测这事儿&#xff0c;看…

作者头像 李华