当前位置: 首页 > news >正文

OGG实现Oracle19C到postgreSQL14的实时同步

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

  • 前言
    • 📣 1.架构设计
    • 📣 2.OGG下载
    • 📣 3.安装OGG for Oracle
      • ✨ 3.1 解压授权
      • ✨ 3.2. 静默安装
      • ✨ 3.3 环境变量
      • ✨ 3.4 创建目录
    • 📣 4.安装OGG for postgreSQL
      • ✨ 4.1 解压及授权
      • ✨ 4.2 修改环境变量
      • ✨ 4.3 创建目录
    • 📣 5.Oracle配置
      • ✨ 5.1 开归档
      • ✨ 5.2 打开附加日志
    • 📣 6.MGR管理进程
    • 📣 7.抽取进程extract
    • 📣 8.传送进程pump
    • 📣 9.目标端配置
    • 📣 10.测试同步

前言

本文详细介绍了我的OGG旅程、从OGG实现Oracle19C到postgreSQL14的实时同步

📣 1.架构设计

主机名IP操作系统内存/空间角色说明
ora19c172.18.12.90centos7.82c/18G 400G源端Oracle 19.3
postgres14172.18.12.50centos7.82c/18G 400G目标库postgreSQL 14

📣 2.OGG下载

1.官方下载
https://www.oracle.com/middleware/technologies/goldengate-downloads.html
1.OGG for oracle安装包
213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip
2.OGG for PostgreSQL安装包
213000_ggs_Linux_x64_PostgreSQL_64bit.zip

在这里插入图片描述

📣 3.安装OGG for Oracle

✨ 3.1 解压授权

mkdir /ogg
mkdir /soft
chown oracle.oinstall /ogg

unzip /opt/213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip -d /soft
cd /soft/fbo_ggs_Linux_x64_Oracle_shiphome/Disk1/
chown -R oracle.oinstall *

✨ 3.2. 静默安装

#使用oracle用户安装ogg
[root@jemora19c ~]# su - oracle
[oracle@jemora19c ~]$ cd /soft/fbo_ggs_Linux_x64_Oracle_shiphome/Disk1/

./runInstaller -silent
oracle.install.responseFileVersion=/oracle/install/rspfmt_ogginstall_response_schema_v21_1_0
INSTALL_OPTION=ORA19c
SOFTWARE_LOCATION=/ogg
START_MANAGER=true
MANAGER_PORT=7809
DATABASE_LOCATION=/opt/oracle/product/19c/dbhome_1
INVENTORY_LOCATION=/opt/oracle/oraInventory
UNIX_GROUP_NAME=oinstall

在这里插入图片描述

✨ 3.3 环境变量

cat >>  /home/oracle/.bash_profile <<"EOF"
export OGG_HOME=/ogg
export PATH=$OGG_HOME:$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$OGG_HOME:$ORACLE_HOME/lib:$LD_LIBRARYPATH
alias ggsci='cd $OGG_HOME;ggsci'
EOFsource /home/oracle/.bash_profile[oracle@jemora19c ~]$ ggsciOracle GoldenGate Command Interpreter for Oracle
Version 21.3.0.0.0 OGGCORE_21.3.0.0.0_PLATFORMS_210728.1047_FBO
Oracle Linux 7, x64, 64bit (optimized), Oracle Database 21c and lower supported versions on Jul 29 2021 03:59:23
Operating system character set identified as UTF-8.Copyright (C) 1995, 2021, Oracle and/or its affiliates. All rights reserved.GGSCI (jemora19c) 1> info allProgram     Status      Group       Lag at Chkpt  Time Since Chkpt
MANAGER     RUNNING     

✨ 3.4 创建目录

oracle@jemora19c ~]$ ggsci
GGSCI (jemora19c) 2> create subdirs

📣 4.安装OGG for postgreSQL

✨ 4.1 解压及授权

mkdir /ogg
unzip /opt/213000_ggs_Linux_x64_PostgreSQL_64bit.zip
tar vxf ggs_Linux_x64_PostgreSQL_64bit.tar -C /ogg
chown -R postgres.postgres /ogg

✨ 4.2 修改环境变量

cat >> /var/lib/pgsql/.bash_profile <<"EOF"
export OGG_HOME=/ogg
export PATH=$OGG_HOME:$PATH
export LD_LIBRARY_PATH=$OGG_HOME/lib:$LD_LIBRARY_PATH
alias ggsci='cd $GG_HOME;ggsci'
EOFsource /var/lib/pgsql/.bash_profile 

✨ 4.3 创建目录

GGSCI (postgres14) 2> create subdirs

在这里插入图片描述

📣 5.Oracle配置

✨ 5.1 开归档

– mount阶段
alter database archivelog;
archive log list;

✨ 5.2 打开附加日志

lter system set enable_goldengate_replication=true;
alter database add supplemental log data;

SELECT supplemental_log_data_min min,
supplemental_log_data_pk pk,
supplemental_log_data_ui ui,
supplemental_log_data_fk fk,
supplemental_log_data_all allc
FROM v$database;

在这里插入图片描述

📣 6.MGR管理进程

cat > /ogg/dirprm/mgr.prm << “EOF”
PORT 7809
DYNAMICPORTLIST 7810-7830
AUTOSTART EXTRACT *
AUTORESTART EXTRACT , RETRIES 100, WAITMINUTES 2, RESETMINUTES 10
PURGEOLDEXTRACTS ./dirdat/
, usecheckpoints, minkeepdays 30
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
EOF

📣 7.抽取进程extract

cat > /ogg/dirprm/ext_ora.prm << “EOF”
extract ext_ora
setenv (ORACLE_SID=oradb)
setenv (ORACLE_HOME=/opt/oracle/product/19c/dbhome_1)
setenv (NLS_LANG=“AMERICAN_AMERICA.AL32UTF8”)
userid PGOGG@oradb,password oracle
exttrail /ogg/dirdat/ex
table PGOGG.test01;
table STEST.*;
EOF

– 添加进程
add extract ext_ora, tranlog, begin now
add exttrail /ogg/dirdat/ex, extract ext_ora

在这里插入图片描述

📣 8.传送进程pump

cat > /ogg/dirprm/pump_ora.prm << “EOF”
extract pump_ora
setenv (ORACLE_SID=oradb)
setenv (ORACLE_HOME=/opt/oracle/product/19c/dbhome_1)
setenv (NLS_LANG=“AMERICAN_AMERICA.AL32UTF8”)
rmthost 172.18.12.50,mgrport 7809,compress
rmttrail /ogg/dirdat/ex
table PGOGG.test01;
table STEST.*;
EOF

📣 9.目标端配置

cat > /ogg/dirprm/rep_pg.prm <<“EOF”
replicat rep_pg
SOURCEDEFS ./dirdef/defgen_PG.prm
SETENV(PGCLIENTENCODING = “UTF8” )
SETENV(ODBCINI=“/ogg/odbc.ini” )
SETENV(NLS_LANG=“AMERICAN_AMERICA.AL32UTF8”)
TARGETDB PGDSN, userid stest, password post
DISCARDFILE ./discard/rep_pg.dsc, append
–ap lhrogg.test01, target lhrogg.test01;
map stest., target stest.;
EOF

📣 10.测试同步

-- oracle查询
col table_name format a30
SELECT a.table_name,a.num_rows FROM dba_tables a where a.OWNER='STEST' order by num_rows desc ;SYS@oradb> delete from STEST.LOGON;
2383 rows deleted.SYS@oradb> select count(*) from STEST.LOGON;COUNT(*)
----------0jemdb=# select count(*) from stest.LOGON;count 
-------0
(1 row)-- 在pg中查询数据量
select  nspname AS schemaname,relname,reltuples::numeric as rowcount,pg_size_pretty (pg_total_relation_size ( '"' || nspname || '"."' || relname || '"' )) AS SIZE
from    pg_class C LEFT JOIN pg_namespace N ON ( N.oid = C.relnamespace ) 
where   nspname NOT IN ( 'pg_catalog', 'information_schema' ) AND relkind = 'r' 
ORDER by reltuples DESC 
LIMIT 20;schemaname |       relname        | rowcount |    size    
------------+----------------------+----------+------------stest      | inventories          |   899441 | 433 MBstest      | order_items          |     7341 | 1072 kBstest      | addresses            |     1500 | 264 kBstest      | card_details         |     1500 | 264 kBstest      | orders               |     1430 | 376 kBstest      | product_information  |     1000 | 400 kBstest      | warehouses           |     1000 | 192 kBstest      | customers            |     1000 | 440 kBstest      | product_descriptions |     1000 | 288 kBstest      | logon                |        0 | 16 kBstest      | orderentry_metadata  |       -1 | 8192 bytespgogg      | test01               |       -1 | 8192 bytesstest      | checkpointtab        |       -1 | 32 kBstest      | checkpointtab_lox    |       -1 | 16 kB
(14 rows)GGSCI (postgres14) 2> stats rep_pg,table stest.logon, totalSending STATS request to Replicat group REP_PG ...Start of statistics at 2023-12-02 00:27:37.Replicating from STEST.LOGON to stest.logon:*** Total statistics since 2023-12-02 00:24:44 ***Total inserts                              0.00Total updates                              0.00Total deletes                           2383.00Total upserts                              0.00Total discards                             0.00Total operations                        2383.00

相关文章:

OGG实现Oracle19C到postgreSQL14的实时同步

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…...

windows 你的电脑不能投影到其他屏幕,请尝试重新安装驱动程序

注意 千万不要去下载什么驱动精灵&#xff0c;太垃圾不好用还一堆附带的软件。按以下步骤进行解决&#xff1a; 解决方法 可能是显卡驱动的问题&#xff0c;我的笔记本按照如下步骤重启一下驱动后解决了&#xff0c;步骤如下: 右键点击桌面的开始菜单&#xff0c;选择”设备…...

2023-简单点-树莓派中的硬件通讯

树莓派中的通讯方式 串口通讯什么是串口通讯&#xff1f;串口通讯的特点 tips并行通讯&#xff1f;基于网络的通讯?socket通讯 串口通讯 什么是串口通讯&#xff1f; 串行通信每次传输一个位元数据&#xff0c;并在连续进行单次过程的基础上进行通信。根据数据的传送方向&am…...

游戏反Frida注入检测方案

在游戏安全对抗过程中&#xff0c;有不少外挂的实现基于对游戏内存模块进行修改&#xff0c;这类外挂通常会使用内存修改器&#xff0c;除此之外&#xff0c;还有一种门槛相对更高、也更难检测的「注入挂」。 据FairGuard游戏安全数据统计&#xff0c;在游戏面临的众多安全风险…...

观海微电子---AF、AG、AR 的差别和作用

一、名称解释及原理 1.AF ---- Anti-fingerprint&#xff0c;中文为抗指纹。一般 SiO2AF 材料&#xff08;DON&#xff0c;M4、道康宁 AF 材料&#xff09;&#xff0c;一般采用真空蒸发镀膜法。 原理&#xff1a;AF 防污防指纹玻璃是根据荷叶原理&#xff0c;在玻璃外表面涂制…...

颠覆性语音识别:单词级时间戳和说话人分离

vbenjs/vue-vben-admin[1] Stars: 19.7k License: MIT Vue Vben Admin 是一个免费开源的中后台模板&#xff0c;使用最新的 vue3、vite4 和 TypeScript 等主流技术进行开发。该项目提供了现成的中后台前端解决方案&#xff0c;并可用于学习参考。 使用先进的前端技术如 Vue3/…...

吉利展厅 | 透明OLED拼接2x2:科技与艺术的完美融合

产品&#xff1a;4块55寸OLED透明拼接屏 项目地点&#xff1a;南宁 项目时间&#xff1a;2023年11月 应用场景&#xff1a;吉利展厅 在2023年11月的南宁&#xff0c;吉利展厅以其独特的展示设计吸引了众多参观者的目光。其中最引人注目的亮点是展厅中央一个由四块55寸OLED透…...

qnx修改tcp和udp缓冲区默认大小

拷贝/home/test/qnx/qos223/target/qnx7/aarch64le/sbin/sysctl进系统中 https://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrino.utilities/topic/s/sysctl.html kern.sbmax 默认262144&#xff0c;这个限制住了发送、接收缓冲器大小 ./sysctl -w kern.sbmax10000…...

vscode的eslint检查代码格式不严谨的快速修复

问题&#xff1a; 原因&#xff1a;复制的代码&#xff0c;esLint检查代码格式不正确。或者写的代码位置不严谨&#xff0c;总是提示 解决 设置在Ctrl S保存时自动格式化代码 1、vscode设置 2、点击右上角&#xff0c;切换json模式 3、添加设置 "editor.codeActionsOn…...

OpenAI GPT-4 Turbo发布:开创AI新时代

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; IT杂谈 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一. GPT-4 Turbo的突破1.1上下文长度和控制手段的加强&#xff1a;1.2多模态支持&#xff1a…...

基于c 实现 FIFO

功能&#xff1a; 1、读和写长度不限制 2、数据操作 和 指针操作分开&#xff08;如先操作数据&#xff0c;再操作指针&#xff09; 适用场景&#xff1a; 单向通信模式&#xff0c;一方写、一方读&#xff0c;可用于任务间单向通信&#xff08;无需锁&#xff09; 如&…...

tortoisegit 报错:server refused to start a shell/command

原因&#xff1a;阿里云的云效不支持TortoiseGit 使用 TortoiseGitPlink&#xff0c;请修改为 OpenSSH。 官网修改教程&#xff1a;TortoiseGit 工具相关报错如何处理&#xff1f; 基本流程&#xff1a; 选择设置&#xff08;Settings&#xff09;&#xff0c;选择通用&#x…...

电商平台API接口指南,京东商品详情接口,京东详情页接口,宝贝详情页接口,商品属性接口,商品信息查询,商品详细信息接口,h5实时详情页数据展示

京东商品详情API接口是京东开放平台提供的一种API接口&#xff0c;通过该接口&#xff0c;可以获取到京东商品的详细信息&#xff0c;如商品名称、价格、图片和描述等信息。 使用方法如下&#xff1a; 注册并获取API密钥&#xff1a;首先需要在京东开放平台上注册并获取API密…...

什么是迁移学习

1 迁移学习概述 迁移学习&#xff08;Transfer Learning&#xff09;是机器学习中的一种方法&#xff0c;它允许模型将从一个任务中学到的知识应用到另一个相关的任务中。这种方法在数据稀缺的情况下尤为有用&#xff0c;因为它减少了对大量标记数据的需求。迁移学习已成为深度…...

万宾科技水环境综合治理监测系统的融合与应用

随着社会经济的快速发展&#xff0c;我国的水环境污染问题日益凸显&#xff0c;这不仅对生态环境造成了严重破坏&#xff0c;也严重威胁到人民群众的健康和生活质量。为了解决这一问题&#xff0c;城市生命线与水环境综合治理监测系统应运而生&#xff0c;二者的结合将为水环境…...

【EI会议征稿】第三届图像,信号处理与模式识别国际学术会议(ISPP 2024)

第三届图像&#xff0c;信号处理与模式识别国际学术会议&#xff08;ISPP 2024) 2024 3rd International Conference on Image, Signal Processing and Pattern Recognition&#xff08;ISPP 2024&#xff09; 第三届图像&#xff0c;信号处理与模式识别国际学术会议&#xf…...

继阿里云、滴滴、语雀后,腾讯视频也出现重大系统故障

昨晚&#xff0c;许多网友报告称腾讯视频出现了网络故障&#xff0c;具体表现为首页无法加载内容、VIP 用户无法观看会员视频等问题。 针对这一问题&#xff0c;腾讯视频回应称&#xff1a;目前腾讯视频遇到了暂时的技术问题&#xff0c;正在紧急修复中&#xff0c;各项功能正在…...

kotlin中sealed语句的使用

sealed 密封类是 Kotlin 中的一种特殊类别&#xff0c;它的主要作用是限制类的继承结构。密封类用于表示受限的类继承结构&#xff0c;即一个值只能有有限几种类型&#xff0c;而不能有任意类型。密封类通常用于表示一种有限集合的类型。 下面是密封类的主要特性和作用&#x…...

软信天成:数据泄露日趋严重 “资产”保护何去何从

随着数据应用的逐渐深入&#xff0c;越来越多的企业意识到&#xff1a;数据作为信息的载体&#xff0c;可以成为企业知识产权、收益流和具备竞争优势的基础资产。然而&#xff0c;当包含大量敏感信息的数据被视作资产时&#xff0c;亦将直面信息被“窃取”、“泄露”和“滥用”…...

GitHub打不开的解决方案(百试不爽法)

一、githup首先打开以下网址&#xff0c;搜索 DNS Resource Records 找到对应的IP地址信息 1、点击访问 GitHub.com - GitHub: Lets build from here GitHubGitHub is the best place to share code with friends, co-workers, classmates, and complete strangers. Over fo…...

SRS (Simple Realtime Server) 实战:从SFU到大规模互动直播架构

1. SRS与SFU&#xff1a;互动直播的基石架构 第一次接触SRS时&#xff0c;我被它简洁的配置方式惊艳到了。这个看似轻量级的服务器&#xff0c;竟然能支撑起我们平台日均百万级的直播流量。作为选择性转发单元&#xff08;SFU&#xff09;&#xff0c;SRS的核心价值在于它解决了…...

SiameseAOE中文-base多场景落地:电商、酒店、教育评论情感结构化实践

SiameseAOE中文-base多场景落地&#xff1a;电商、酒店、教育评论情感结构化实践 1. 引言&#xff1a;从海量评论中挖掘价值 你有没有遇到过这样的烦恼&#xff1f;面对成千上万条用户评论&#xff0c;想了解大家对产品、服务到底满不满意&#xff0c;却无从下手。一条条看&a…...

微信自动化全攻略:从零基础到企业级部署的3大场景与7个避坑指南

微信自动化全攻略&#xff1a;从零基础到企业级部署的3大场景与7个避坑指南 【免费下载链接】puppet-wechat Wechaty Puppet Provider for WeChat 项目地址: https://gitcode.com/gh_mirrors/pu/puppet-wechat 在数字化办公与智能交互日益普及的今天&#xff0c;微信作为…...

AIGlasses_for_navigation精彩案例分享:真实视障用户过马路辅助语音引导记录

AIGlasses_for_navigation精彩案例分享&#xff1a;真实视障用户过马路辅助语音引导记录 1. 引言&#xff1a;当AI成为视障者的“眼睛” 想象一下&#xff0c;你站在一个繁忙的路口&#xff0c;耳边是呼啸而过的车流声&#xff0c;眼前却是一片模糊或黑暗。过马路&#xff0c…...

【并发心法】别用 volatile 骗自己了!撕碎裸机并发的伪安全,用 C++ Atomics 与内存屏障镇压“乱序执行”的底层叛乱

摘要&#xff1a;在嵌入式 C/C 开发中&#xff0c;99% 的工程师误以为 volatile 是解决中断与主循环并发冲突的万能解药。本文将无情揭露这一长达数十年的认知毒瘤。我们将带你深入现代编译器&#xff08;GCC/Clang&#xff09;的优化黑盒与 ARM Cortex 高级内核的流水线深处&a…...

对于对话中的对话状态跟踪,OpenClaw 的跨领域迁移能力?

在讨论对话状态跟踪这个问题时&#xff0c;OpenClaw 的跨领域迁移能力其实是一个挺有意思的切入点。很多人在初次接触这个概念时&#xff0c;可能会觉得这不过是另一个模型在多个数据集上跑出来的结果&#xff0c;但真正深入去看&#xff0c;会发现背后有不少值得琢磨的地方。 …...

利用akshare构建涨停板股票数据分析系统

1. 为什么需要涨停板数据分析系统 在股票市场中&#xff0c;涨停板是一个非常重要的信号。当某只股票的价格涨幅达到当日上限时&#xff0c;就会触发涨停机制&#xff0c;这意味着市场对该股票的需求非常旺盛。对于投资者来说&#xff0c;及时捕捉涨停板股票的特征和规律&#…...

避坑指南:OpenClaw对接nanobot镜像的3大常见错误与解决方法

避坑指南&#xff1a;OpenClaw对接nanobot镜像的3大常见错误与解决方法 1. 为什么需要这份避坑指南&#xff1f; 上周我在本地部署nanobot镜像时&#xff0c;原本以为半小时就能搞定的事情&#xff0c;硬是折腾了整整一个下午。这个超轻量级的OpenClaw镜像确实很吸引人——内…...

探索时序并行门控网络TPGN:RNN的崭新继任者

一种RNN的新继任者—时序并行门控网络TPGN&#xff0c;用于时间序列预测。 作为RNN的新继任者。 PGN通过设计的历史信息提取&#xff08;HIE&#xff09;层直接从以前的时间步捕获信息&#xff0c;并利用门通机制选择并将其与当前时间步信息融合。 这将信息传播路径减少到0(1)&…...

别再死记硬背了!用Multisim仿真带你玩转计数器与数据选择器(附FPGA引脚配置)

用Multisim仿真与FPGA实战&#xff1a;计数器与数据选择器的设计艺术 数字电路课程中那些抽象的概念&#xff0c;是否曾让你感到困惑&#xff1f;模5计数器、序列信号发生器这些名词听起来高深莫测&#xff0c;但通过Multisim仿真和FPGA实战&#xff0c;你会发现它们其实可以很…...