【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(上)

系列文章目录

【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(上)
【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(中)
【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(下)


文章目录

  • 系列文章目录
  • 前言
  • 一、数据库配置信息
  • 二、下载OGG12C
  • 三、上传安装包到主备库并解压
  • 四、配置环境变量
  • 五、创建安装目录
  • 六、数据库配置
    • 源端库配置
      • 1、开启数据库归档
      • 2、开启强制使用日志模式
      • 3、开启日志追加
      • 4、创建ogg管理用户
      • 5、授予ogg账户权限
      • 6、修改数据库参数
    • 目标端库配置
      • 1、创建ogg管理用户
      • 2、授予ogg账户权限
      • 3、修改数据库参数
  • 总结


前言

博主所在单位目前使用Oracle GoldenGate将各个业务生产库汇聚到一起做数仓实时ODS平台,源端库可能涉及Oracle、Mysql、达梦、Guassdb库。
之前写过一系列关于GoldenGate异构同步Mysql、Kafka、Kylin、Flink做实时计算的场景文章。但是突然发现,卧槽最最最应该第一个做的Oracle->Oracle的实时异构同步文档竟然没写!
来弥补一下这个空白!!!
好了,扯远了,回归技术!
下面是我给大家的生产环境下,如何部署GoldenGate12C及异构实时同步数据的解决方案。本文主要介绍如何实现实时异构的进行Oracle->Oracle的数据同步,这种数据同步适用于灾备、升级、实时ODS等场景使用。我这里给大家了三个GoldenGate部署方式,看大家喜欢用哪种吧!!
注意:本部署方案分为三章节,三章节的重点分别是:

  • GoldenGate12C安装前,数据库层面的准备工作!!!
  • 给你GoldenGate12C的三种部署方式,看你喜欢哪种部署方式!!!
  • 配置支持DDL操作的实时数据同步!!!

一、数据库配置信息

此架构为ALO模式的数据同步,系统均为:OracleLinux6.8,数据库安装可以参考另一篇数据库安装文档:
【大数据开发运维解决方案】linux5 安装 oracle 11g(11.2.0.4)实验。
源端数据库配置信息:
主机名:source
IP:192.168.1.6
归档位置:/u01/arch
字符集:AMERICAN_AMERICA.AL32UTF8
目的端数据库配置信息:
主机名:ogg
IP:192.168.1.10
归档位置:/u01/arch
字符集:AMERICAN_AMERICA.ZHS16GBK
UTF8是GBK的超集,有可能有些utf8中有但是gbk没有的字符,就会报错,比如之前生产遇到的不间断空格(c2a0),文章连接:
【大数据实时数据同步】GoldenGate实时同步异常:OGG-03533:character ‘c2 a0‘ at offset 0 that is not available报错解决

二、下载OGG12C

GoldenGate公司成立于1995年的美国加州旧金山, 它的名称源自旧金山闻名于世的金门大桥。
该公司于2009年9月被Oracle公司收购,在此之前Oracle和GoldGate公司就有了长达超过10年的合作关系。
GoldenGate几乎支持市面上流行的所有主流的操作系统平台和数据库。
点击此处跳转Oracle官网下载

三、上传安装包到主备库并解压

我是通过xmanager的ftp上传的,解压命令

[oracle@source u01]$ unzip V861007-01.zip

在这里插入图片描述

四、配置环境变量

源端环境变量设置如下:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export ORACLE_BASE=/u01/app/oracle
export GGHOME=$ORACLE_BASE/ogg12
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_BASE/ogg12:$ORACLE_HOME/OPatch
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib--如果不配置这个,会爆缺少libnnz11.so等库文件的错。所以这里制定这些库文件,可以和后面安装过程用ldd命令验证的步骤搭配看
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias ss='sqlplus / as sysdba'
alias sc='sqlplus scott/tiger'
alias c='cd $GGHOME'
alias g='rlwrap ./ggsci'

目的端环境变量配置:

# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export ORACLE_BASE=/u01/app/oracle
export GGHOME=$ORACLE_BASE/ogg12
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=ogg
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_BASE/ogg12:$ORACLE_HOME/OPatch
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias ss='sqlplus / as sysdba'
alias sc='sqlplus scott/tiger'
alias c='cd $GGHOME'
alias g='rlwrap ./ggsci'

环境变量配置完要source .bash_profile一下生效

五、创建安装目录

因为两端都指定ogg安装目录为/u01/app/oracle/ogg12,所以两边都做下面操作:

mkdir /u01/app/oracle/ogg12

六、数据库配置

源端库配置

1、开启数据库归档

验证是否开启

SQL> archive log list

2、开启强制使用日志模式

alter database force logging;

验证是否开启

select force_logging from v$database;

3、开启日志追加

alter database add supplemental log data;

验证是否开启

select supplemental_log_data_min,
supplemental_log_data_pk,
supplemental_log_data_ui,
supplemental_log_data_fk
from v$database;

4、创建ogg管理用户

创建表空间oggdata,用来存放ogg账户的相关数据

CREATE TABLESPACE OGGDATA DATAFILE '/u01/app/oracle/oradata/orcl/ogg.dbf' SIZE 200M AUTOEXTEND ON NEXT 100M MAXSIZE 1024M;
create user ogg identified by ogg default tablespace oggdata;

5、授予ogg账户权限

GRANT CREATE TABLE,CREATE SEQUENCE TO OGG;
grant connect, resource, dba to ogg;

6、修改数据库参数

查看数据库版本:

select*from v$version;

Oracle 11.2.0.4需要配置参数,之前的版本不需要配置
修改参数:

alter system set enable_goldengate_replication=true scope=both; 

目标端库配置

1、创建ogg管理用户

创建表空间oggdata,用来存放ogg账户的相关数据

CREATE TABLESPACE OGGDATA DATAFILE '/u01/app/oracle/oradata/orcl/ogg.dbf' SIZE 200M AUTOEXTEND ON NEXT 100M MAXSIZE 1024M;
create user ogg identified by ogg default tablespace oggdata;

2、授予ogg账户权限

GRANT CREATE TABLE,CREATE SEQUENCE TO OGG;
grant connect, resource, dba to ogg;

3、修改数据库参数

查看数据库版本:

select*from v$version;

Oracle 11.2.0.4需要配置参数,之前的版本不需要配置
修改参数:

alter system set enable_goldengate_replication=true scope=both; 

总结

本篇博客主要介绍了在安装OGG12C之前,数据库层面应该做哪些变化!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/369475.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

海量数据处理商用短链接生成器平台 - 2

第二章 短链平台项目创建git代码管理开发分层规范 第1集 短链平台实战-Maven聚合工程创建微服务项目 **简介:Maven聚合工程创建微服务项目实战 ** Maven聚合工程拆分 dcloud-common 公共依赖包 dcloud-app FlinkKafka实时计算 dcloud-account 账号流量包微服务 dc…

程序报错无法打开源文件stdafx.h

在运行代码时,代码中头文件突然报错程序无法打开源文件stdafx.h include “stdafx.h”,编译器就说无法打开源文件,直接上干货解决方法是: 1.打开项目 ->项目属性(最后一个)-> C/C ->常规, 2在附…

【MySQL】——数据定义

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

第二十二回 横海郡柴进留宾 景阳冈武松打虎-大模型ChatGLM2-6B新手速通

柴进说这人叫武松,排名老二。宋江说江湖上听说过武二郎的名字,幸会幸会,就拉着武松的手,一起喝酒吃饭。 武松是家喻户晓的打虎英雄,现在最流行的是大模型! 大模型ChatGLM2-6B新手速通! 人工智能…

成都爱尔林江院长解读儿童青少年为什么一定要进行医学验光配镜

根据国家卫健委数据显示:我国青少年儿童总体近视率为52.7%、高度近视人口超3000万。近视学生中,有10%为高度近视,且占比随年级升高而增长。 近视孩子之多,孩子视力发展备受关注。戴镜进行近视防控十分必要,且眼镜不可随意验配! 成…

超越体量:TinyLlama用1.1B参数实现大模型级性能

引言 随着人工智能技术的快速发展,大型语言模型(LLM)在全球范围内受到瞩目。但与此同时,另一类模型正在逐渐崭露头角:参数规模较小的语言模型。这类模型在计算资源受限的环境下显示出巨大潜力,特别是在智能…

SpringbootV2.6整合Knife4j 3.0.3 问题记录

参考 https://juejin.cn/post/7249173717749940284 近期由于升级到springboot2.6X,所以服务端很多组件都需要重新导入以及解决依赖问题。 下面就是一个很经典的问题了, springboot2.6与knife4j的整合。 版本对应 springboot2.6与knife4j 3.0.3 坑 …

STM32外部中断(红外传感器与旋转编码器计数案例)

文章目录 一、介绍部分简介中断系统中断执行流程STM32中断NVIC基本结构NVIC优先级分组外部中断外部中断简介外部中断基本结构外部中断的流程AFIOEXTI框图 相关外设介绍旋转编码器介绍硬件电路对射式红外传感器 二、代码实现对射式红外传感器计次连接电路封装红外传感器与中断函…

JDK17中的密封类sealed和permits使用指南:什么是Java中的sealed和permits?

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

【工作周志】240129-240204

本周学习了AXI相关的内容 AMBA (Advanced Microcontroller Bus Architecture) AXI (Advanced eXtensible Interface) ARM公司提出,AMBA3.0协议中重要组成部分,是一种面向高性能、高带宽、低延迟的片内总线…

docker入门教程之将应用程序容器化

将应用程序容器化 在本指南的其余部分中,您将使用在 Node.js 上运行的简单待办事项列表管理器。如果您不熟悉 Node.js,请不要担心。本指南不需要任何 JavaScript 经验。 先决条件 您已安装最新版本的 Docker Desktop。您已经安装了 Git 客户端。您可以…

手把手教你开发Python桌面应用-PyQt6图书管理系统-图书类别添加模块UI设计实现

锋哥原创的PyQt6图书管理系统视频教程: PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~_哔哩哔哩_bilibiliPyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~共计24条视频&…

【React】react组件传参、redux状态管理

【React】react组件传参、redux状态管理 一、props:父组件向子组件传参1、将普通的参数作为props传递2、将jsx作为props传递(组件插槽)(1)基础功能示例(2)进阶示例 二、自定义事件:子…

【前端必备】深入详解Vue2/Vue3 diff算法实现思路

在做diff算法之前有个基本逻辑要明白,Vue的diff算法是同层比较,不会跨层比较,时间复杂度为O(N)。 主要使用首尾比较法(头-头,头-尾,尾-头,尾-尾)。Vue2与Vue3的diff算法主要区别是处…

Mysql运维篇(四) MySQL常用命令

一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人。如有侵权,请留言,我及时删除! 一、MySQL命令速查表 https://www.cnblogs.com/pyng/p/15560059.html Mysql DBA运维命令大全 - 墨…

【大厂AI课学习笔记】1.4 算法的进步(4)关于李飞飞团队的ImageNet

第一个图像数据库是ImageNet,由斯坦福大学的计算机科学家李飞飞推出。ImageNet是一个大型的可视化数据库,旨在推动计算机视觉领域的研究。这个数据库包含了数以百万计的手工标记的图像,涵盖了数千个不同的类别。 基于ImageNet数据库&#xf…

OpenSSL:configure: error: OpenSSL library not found解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

JavaWeb01-JDBC、Druid连接池

目录 一、JDBC 1.概述 2.本质 3.好处 4.使用步骤 5.JDBC_API (1)DriverManager(驱动管理类) (2)Connection(数据库连接对象) (3)Statement &#xf…

2024-02-01 Unity Shader 开发入门4 —— ShaderLab 语法

文章目录 1 材质和 Shader1.1 Unity Shader 和 Shader 的区别1.2 Unity 中的材质和 Shader1.3 创建材质1.4 创建 Shader 2 ShaderLab 的基本结构2.1 什么是 ShaderLab2.2 ShaderLab 的基本结构 3 Shader 名称4 Shader 属性4.1 Shader 属性的作用4.2 Shader 属性的基本语法4.3 数…

C++初阶:适合新手的手撕string类(模拟实现string类)

上次讲了常用的接口:C初阶:初识STL、String类接口详细讲解(万字解析) 今天就来进行模拟实现啦 文章目录 1.基本结构与文件规划2.构造函数(constructor)2.1构造函数2.1.1无参有参分开2.1.2利用缺省参数合起来 2.2拷贝构…