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

19c_ogg搭建

1.环境介绍

源端:192.168.56.101 目标端:192.168.56.100
背景:数据从主库cdb主机定位,同步到从库

2.配置ogg

2.1 开启归档、强制日志、补充日志

--ogg 主备都需要配置
SQL> alter database archivelog;
SQL> alter database force logging;
SQL> alter database add supplemental log data;
SQL> alter database add supplemental log data(primary key,unique,foreign key) columns; 
SQL> alter system archive log current; SQL> select log_mode,force_logging,supplemental_log_data_min from v$database;
LOG_MODE     FORCE_LOGGING                           SUPPLEME
------------ --------------------------------------- --------
ARCHIVELOG   YES                                     YES--ogg 启用(所有节点)
SQL> alter system set enable_goldengate_replication = true;

2.2 创建角色

--192.168.56.101 (cdb)
grant dba to c##oggadmin container = all;
create tablespace ts_ogg datafile '/u01/app/oracle/oradata/ORCL/ts_global_ogg01.dbf' size 10g autoextend off;
create user c##oggadmin identified by "oggadmin" default tablespace ts_ogg;--192.168.56.100 (pdb)
create tablespace ts_ogg datafile '/u01/app/oracle/oradata/ORCL/pdb/ts_ogg01.dbf' 10g autoextend off;
create user oggadmin identified by "oggadmin" default tablespace ts_ogg;
grant dba to oggadmin;

2.3 源端ogg进程配置

[oracle@pg1 ogg]$ ./ggsci
GGSCI (pg1) 2> edit params mgr
ps:mgr主从都配

PORT 7809
autostart extract *
autorestart extract *,retries 3,waitminutes 3--保存后启动mgr
GGSCI (pg1) 4> start mgr
MGR is already running.--manager进程参数配置说明: 
port:指定服务监听端口dynamicportlist:动态端口,可以制定最大256个可用端口的动态列表,当指定的端口不可用时,管理进程将会从列表中
选择一个可用的端口,源端和目标段的collector、replicat、ggsci进程通信也会使用这些端口;比如:dynamicportlist
7501-7601 comment:注释行,也可以用–来代替;autostart:指定在管理进程启动时自动启动哪些进程;比如:autostart extract * 启动所有的抽取进程
autorestart:自动重启参数设置:本处设置表示每3分钟尝试重新启动所有extract进程,共尝试3次;purgeoldextracts:定期清理trail文件设置:本处设置表示对于超过3天的trail文件进行删除。purgeoldextracts./dirdat/*,usecheckpoints,minkeepdayslagreport、laginfo、lagcritical:
定义数据延迟的预警机制:设置表示mgr进程每隔1小时检查extract的延迟情况,如果超过了30分钟就把延迟作为信息
记录到错误日志中,如果延迟超过了45分钟,则把它作为警告写到错误日志中。 lagreporthours 1 laginfominutes 30 lagcriticalminutes 45

2.4 用户ogg登录到数据库

[oracle@pg1 admin]$ cat tnsnames.ora 
19c = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.101)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = orcl)))pdb =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.101)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = pdb)))--192.168.56.101 
GGSCI (pg1) 5> dblogin userid c##oggadmin,password oggadmin
Successfully logged into database CDB$ROOT.GGSCI (pg1 as c##oggadmin@orcl/CDB$ROOT) 6>  edit params ./GLOBALS
GGSCHEMA C##OGGADMIN
保存退出-- 对抽取的表添加trandata
SQL> exec dbms_goldengate_auth.grant_admin_privilege('c##oggadmin');
SQL> exec dbms_goldengate_auth.grant_admin_privilege('c##oggadmin',container=>'all');
GGSCI (pg1 as c##oggadmin@orcl/CDB$ROOT) 7>  add trandata pdb.scott.emp1
or
SQL> alter table schema.table_name add supplemental log data(all) columns;--pdb 级别对trandata进行添加操作

2.5 配置ogg进程

ps:抽取进程和传输进程其实都是extract进程,也可以配置在一个进程完成这两个功能,但是当网络传输有问题时,这样抽取
也就不能继续运行了,所以推荐分开配置为两个进程.

-- 添加抽取进程ext1(自定义名称)
GGSCI (pg1 as c##oggadmin@orcl/CDB$ROOT) 8> add extract ext1,integrated tranlog,begin now
GGSCI (pg1 as c##oggadmin@orcl/CDB$ROOT) 9> add exttrail /u01/app/oracle/ogg/dirdat/et,extract ext1 megabytes 200
ps:其中et(exttrail的缩写)是不需要自己手动创建的并且要严格控制在两个字符或者两个字符以内,OGG会自动创建。--注册抽取进程ext1到pdb
GGSCI (pg1 as c##oggadmin@orcl/CDB$ROOT) 10>  register extract ext1 database container(pdb)--添加投递进程pump1
GGSCI (pg1 as c##oggadmin@orcl/CDB$ROOT) 11> add extract pump1,exttrailsource /u01/ogg/dirdat/et   -- 给投递进程添加远程trail文件
GGSCI (pg1 as c##oggadmin@orcl/CDB$ROOT) 12> add rmttrail /u01/ogg/dirdat/rt,extract pump1,megabytes 200 --配置抽取进程ext1
GGSCI (pg1 as c##oggadmin@orcl/CDB$ROOT) 13> edit params ext1
extract ext1
userid c##oggadmin,password oggadmin
exttrail /u01/ogg/dirdat/et         --抽取进程的跟踪文件
table pdb.scott.emp1;
table pdb.scott.dept1;
保存退出--配置投递进程pump1
GGSCI (pg1 as c##oggadmin@orcl/CDB$ROOT) 13> edit params pump1
extract pump1
userid c##oggadmin,password oggadmin
rmthost 192.168.56.100,mgrport 7809
rmttrail /u01/ogg/dirdat/rt         --rmttrail用来指定投递到目标端的trail文件。
table pdb.scott.emp1;               --table参数后面就是你要复制投递的表,注意结束了一定要用 ';'结尾
table pdb.scott.dept1;
保存退出

3. 目标端ogg进程配置

3.1 配置mgr进程

-- mgr配置
GGSCI (test) 1> edit params mgr
PORT 7809
autostart extract *
autorestart extract *,retries 3,waitminutes 3
保存退出--启动mgr
GGSCI (test) 2> start mgr--用ogg用户oggadmin登录pdb
GGSCI (test) 3> dblogin userid oggadmin@pdb,password oggadmin;
Successfully logged into database PDB.--编辑GLOBALS
GGSCI (test as oggadmin@orcl/PDB) 4>  edit params ./GLOBALS
GGSCHEMA oggadmin
CHECKPOINTTABLE oggadmin.checkpointtable
保存退出--添加检查点表(checkpointtable)
GGSCI (test as oggadmin@orcl/PDB) 5>  add checkpointtable oggadmin.checkpointtable-- 添加数据复制进程rep1并配置
GGSCI (test as oggadmin@orcl/PDB) 6> add replicat rep1 exttrail /u01/ogg/dirdat/rt,checkpointtable oggadmin.checkpointtableGGSCI (test as oggadmin@orcl/PDB) 7> edit params rep1
replicat rep1
userid oggadmin@pdb,password oggadmin
ASSUMETARGETDEFS
DBOPTIONS ENABLE_INSTANTIATION_FILTERING
DISCARDFILE /u01/ogg/rep1_discard.txt,append,megabytes 10
DISCARDROLLOVER AT 02:00
DDLERROR DEFAULT IGNORE RETRYOP
map pdb.scott.emp1,target scott.emp1;
map pdb.scott.dept1,target scott.dept1;
保存退出
ASSUMETARGETDEFS
--使用ASSUMETARGETDEFS参数时,用MAP语句中指定的生产库源表和灾备端目标表具有相同的列结构。它指示的Oracle GoldenGate不在生产端查找源表的结构定义。
HANDLECOLLISIONS  --不要用!存在操作不一致性(详情https://blog.csdn.net/zhuxiaoliao/article/details/42234661)
DBOPTIONS ENABLE_INSTANTIATION_FILTERING  --当DDL复制报错时,则需要用到此处的ddlerror参数预处理一些常见的报错信息。Ddlerror对于抽取、复制进程均有效,默认为abend。
DISCARDFILE /u01/app/oracle/ogg/rep1_discard.txt,append,megabytes 10  
--将执行失败的记录保存在discard file中,文件中已经包含记录的话,再后面继续追加,不删除之前的记录。
--如当DDL复制报ORA-1430错误,传递了重复的alter语句导致,则可以用ddlerror (1430, discard)将错误信息扔到discard文件里。
DISCARDROLLOVER AT 02:00
--为了防止discard file被写满,每天2:00做一次文件过期设定
DDLERROR DEFAULT IGNORE RETRYOP  --DDL语句出错默认--启动源端OGG抽取和投递进程
start pump1
start ext1--导入数据
可以用数据泵把要同步的表导入从库,or 使用dblink也行--OGG进程检查与日志查看
[root@test ogg]# tail -200f ggserr.log
--                                        

相关文章:

19c_ogg搭建

1.环境介绍 源端:192.168.56.101 目标端:192.168.56.100 背景:数据从主库cdb主机定位,同步到从库 2.配置ogg 2.1 开启归档、强制日志、补充日志 --ogg 主备都需要配置 SQL> alter database archivelog; SQL> alter databa…...

网络通信原理网络层TCP/IP协议(第四十三课)

1.什么是TCP/IP 目前应用广泛的网络通信协议集 国际互联网上电脑相互通信的规则、约定。 2.主机通信的三要素 IP地址:用来标识一个节点的网络地址(区分网络中电脑身份的地址,如人有名字) 子网掩码:配合IP地址确定网络号 IP路由:网关的地址,网络的出口 3.IP地址 …...

yolov5封装进ros系统

一,要具备ROS环境 ROS环境搭建可以参考我之前的文章 ROS参考文章1 ROS参考文章2   建立ROS工作空间 ROS系统由自己的编译空间规则。 cd 你自己想要的文件夹(我一般是home目录) mkdir -p (你自己的文件夹名字,比如我是yolov5…...

Flowable 源码目录结构

title: Flowable 源码目录结构 date: 2023-8-17 23:47:20 tags: - Flowable 下载源码 下载地址:flowable/flowable-engine at flowable-6.7.2 (github.com) Git 下载方式:git clone gitgithub.com:flowable/flowable-engine.git 切换分支 git checkout -…...

科大讯飞星火模型申请与chatgpt 3.5模型以及new bing的对比

科大讯飞星火模型 申请科大讯飞星火认知大模型账号科大讯飞星火认知大模型使用1.界面介绍2. 在编程能力上与chatgpt 3.5对比科大讯飞星火模型chatgpt 3.5模型 3. 在图片生成能力上与new bing对比 总结 申请科大讯飞星火认知大模型账号 注册网址: 科大讯飞星火认知大…...

无涯教程-TensorFlow - 分布式计算

本章将重点介绍如何开始使用分布式TensorFlow,目的是帮助开发人员了解重复出现的基本分布式TF概念,如TF服务器。无涯教程将使用Jupyter Notebook分布式TensorFlow。 第1步 - 导入分布式计算必需的必要模块- import tensorflow as tf 第2步 - …...

python+django+mysql项目实践五(信息搜索)

python项目实践 环境说明: Pycharm 开发环境 Django 前端 MySQL 数据库 Navicat 数据库管理 信息搜素 输入内容进行搜索,内容有文本类和时间类 文本类需要模糊搜索,包含即检索 时间类需要选取时间范围内的内容 views 利用Q完成对指定内容的检索 检索后按检索内容更新…...

Python Opencv实践 - 图像透射变换

import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_COLOR) rows,cols img.shape[:2] print(rows,cols)#opencv中的透射变换,需要一个3x3透射变换矩阵 #这个矩阵可以通过…...

SpringBoot + Vue 微人事项目(第二天)

昨天做了微人事登录的前端页面和后端接口,实现了前后端接口的对接,输入正确的用户名和密码之后,成功的跳转到home页。现在要做的就是Home页的Title制作 Home页的title制作 使用Element UI中的Container布局容器 复制的代码如下&#xff0c…...

【AIGC】 快速体验Stable Diffusion

快速体验Stable Diffusion 引言一、安装二、简单使用2.1 一句话文生图2.2 详细文生图 三、进阶使用 引言 stable Diffusion是一款高性能的AI绘画生成工具,相比之前的AI绘画工具,它生成的图像质量更高、运行速度更快,是AI图像生成领域的里程碑…...

Python入门【动态添加属性和方法、正则表达式概述、match函数的使用、常用匹配符、限定符 、限定符使用示例】(二十九)

👏作者简介:大家好,我是爱敲代码的小王,CSDN博客博主,Python小白 📕系列专栏:python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 📧如果文章知识点有错误…...

《Go 语言第一课》课程学习笔记(四)

构建模式:Go Module 的 6 类常规操作 为当前 module 添加一个依赖 我们如何为一个 Go Module 添加一个新的依赖包呢? 如果我们要为项目增加一个新依赖:github.com/google/uuid,我们首先会更新源码:package mainimpor…...

制定建立商务模式财务及企业管理信息系统的解决方案

1、调查企业对 Internet 的需求,并制定全面规划。由于电子商务的范围相当 广泛,企业在实施电子商务模式财务及企业管理信息系统时,应先调查哪些对于企 业的收益较大,然后进行全面规划,即规划信息化基本平台、后台企业…...

UE Json Operate 解析嵌套数组

演示如何使用 DTJsonOperate 插件,在蓝图中解析嵌套数组。 比如这个Json {"name": [[[1, 2]],[3, 4],[5, 6]] } 操作演示 最后打印 本功能需要插件支持,插件下载地址。...

sd-webui安装comfyui扩展

文章目录 导读ComfyUI 环境安装1. 安装相关组件2. 启动sd-webui3. 访问sd-webui 错误信息以及解决办法 导读 这篇文章主要给大家介绍如何在sd-webui中来安装ComfyUI插件 ComfyUI ComfyUI是一个基于节点流程式的stable diffusion的绘图工具,它集成了stable diffus…...

Apache Doris 2.0.0 版本正式发布:盲测性能 10 倍提升,更统一多样的极速分析体验

亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于 2023 年 8 月 11 日正式发布,有超过 275 位贡献者为 Apache Doris 提交了超过 4100 个优化与修复。 在 2.0.0 版本中,Apache Doris 在标准 Benchmark 数…...

LeetCode235. 二叉搜索树的最近公共祖先

235. 二叉搜索树的最近公共祖先 文章目录 [235. 二叉搜索树的最近公共祖先](https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/)一、题目二、题解方法一:递归方法二:迭代 一、题目 给定一个二叉搜索树, 找到该树中两个指定…...

设计模式——建造者(Builder)模式

建造者模式(Builder Pattern),又叫生成器模式,是一种对象构建模式 它可以将复杂对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构造出不同表现的对象。建造者模式是一步一步创建一个复杂的对象,…...

Java课题笔记~ SpringBoot概述

问题导入 学习了SpringBoot入门案例之后,感觉对比SpringMVC哪一个更加方便简洁? SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程 Spring程序缺点 配置繁琐 依赖设置繁琐 SpringBoot程序…...

python优雅地爬虫!

背景 我需要获得新闻,然后tts,在每天上班的路上可以听一下。具体的方案后期我也会做一次分享。先看我喜欢的万能的老路:获得html内容-> python的工具库解析,获得元素中的内容,完成。 好家伙,我知道我爬…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

Go语言多线程问题

打印零与奇偶数&#xff08;leetcode 1116&#xff09; 方法1&#xff1a;使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...