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

Oracle 21C 部署ogg踩过的坑

问题背景
我想要部署两台oracle数据库服务器,并且用Oracle Goldengate 进行数据同步更新。
跟着教程配置好ogg之后,发现抽取进程没有抽取出任何数据。

服务器配置:
两台安装了配置完全相同的Fedora服务器系统(红帽子旗下的一个linux系统)虚拟机。当然IP不能相同。

数据库配置:
Oracle 21C 可插拔式容器数据库, CDB名称是CDB1,唯一一个插拔式数据库PDB,名称是PDB1。两台虚拟机配置完全相同。

Oracle Goldengate (以下简称ogg),版本21.3。

以下是坑

一、源端创建OGG用户

一定要登录CDB进行创建,不要在PDB中创建
也就是直接登录sqlplus ,然后执行创建用户的命令。

sqlplus / as sysdba

SQL>

create user C##OGG identified by ogg ;

注意,在CDB中创建的公共用户的用户名必须是C##开头的,不然创建会报错。
之后需要给C##OGG用户赋权,赋予DBA权限。
全部流程可参考 https://blog.csdn.net/qq_44829685/article/details/128429827

二、创建抽取进程

数据库实例名称SID是CDB1,有两个服务名称分别是CDB1和PDB1。

登录GGSCI之后,dblogin 进CDB中,而不是pdb中,

./ggsci
GGSCI (Fedora) 2> dblogin userid c##ogg@cdb1,password ogg
Successfully logged into database CDB$ROOT.GGSCI (Fedora as c##ogg@cdb1/CDB$ROOT) 3> 

然后再执行一系列操作。还是参考 https://blog.csdn.net/qq_44829685/article/details/128429827

一定不要忘记 register 注册抽取进程这一操作。

三、添加附加日志(add trandata)

到了add trandata这一步,在CDB数据库中是无法直接给pdb中的表增加附加日志的。
对此,有三种方式进行添加日志操作。

1. ggsci中登录pdb

GGSCI (Fedora) 1> dblogin userid c##ogg@pdb1,password ogg
Successfully logged into database.GGSCI (Fedora as c##ogg@cdb1) 2> add trandata test.test2025-10-13 17:16:28  INFO    OGG-15132  Logging of supplemental redo data enabled for table TEST.TEST.2025-10-13 17:16:28  INFO    OGG-15133  TRANDATA for scheduling columns has been added on table TEST.TEST.2025-10-13 17:16:28  INFO    OGG-15438  Enabling logical replication (with all keys) on auto capture table TEST.TEST.2025-10-13 17:16:28  INFO    OGG-15135  TRANDATA for instantiation CSN has been added on table TEST.TEST.2025-10-13 17:16:28  INFO    OGG-26035  Logical replication for table TEST.TEST is ENABLED.2025-10-13 17:16:28  INFO    OGG-10471  ***** Oracle Goldengate support information on table TEST.TEST ***** 
Oracle Goldengate support native capture on table TEST.TEST.
Oracle Goldengate marked following column as key columns on table TEST.TEST: ID.GGSCI (Fedora as c##ogg@cdb1) 3> 

2.ggsci 中在CDB中添加附加日志

还是参考 https://blog.csdn.net/qq_44829685/article/details/128429827

3. 在数据库中添加

不太推荐,我还没测试好,而且感觉手写的log_group_name 不知道会不会引发其他问题。
alter table TEST.TEST add supplemental log group ggs_test_1 (AAC001,AAC003) always;

再说说 add trandata 的作用:
附加日志,又叫补充日志,是对数据库或者对表的设置,用于对事务操作记录增加一些信息。

比如,我更新了 学生的姓名,没有指定附加日志的情况,数据库操作记录仅仅会记录主键和姓名字段,如果有主键,那么一切都会没有问题,如果没有主键,那么操作记录只会记录姓名,当我们通过ogg进行数据同步时,由于没有主键,目标端的读取进程就会报错或者丢弃这条更新记录,也就目标端是无法应用更新和删除等操作,对插入是没有影响的。

也就是,如果你的表都有主键,那么可以不进行add trandata操作,如果你的表没有主键,那么请添加附加日志。

四、目标端用户和复制进程的创建

目标的创建,不在CDB中创建,而是在你的目标pdb中创建,包括ogg用户等创建操作。

由于CDB中创建的抽取进程的抽取信息包含catalog 信息(pdb1),它的表名会显示为pdb1.test.test

咱们在 replicat的配置文件中,可以加一行这个 sourcecatalog pdb1

GGSCI (Fedora) 4> view params rep1REPLICAT rep1
SETENV(ORACLE_SID=CDB1)
USERID ogg@pdb1,password ogg
ALLOWNOOPUPDATES
REPERROR default,discardASSUMETARGETDEFS
sourcecatalog pdb1MAP TEST.AC01, TARGET TEST.AC01,colmap(usedefaults,UPDATE_TIME=@GETENV('GGHEADER','COMMITTIMESTAMP'));
MAP TEST.AB01, TARGET TEST.AB01,colmap(usedefaults,UPDATE_TIME=@GETENV('GGHEADER','COMMITTIMESTAMP'));
MAP TEST.AC02, TARGET TEST.AC02,colmap(usedefaults,UPDATE_TIME=@GETENV('GGHEADER','COMMITTIMESTAMP'));
MAP TEST.AB02, TARGET TEST.AB02,colmap(usedefaults,UPDATE_TIME=@GETENV('GGHEADER','COMMITTIMESTAMP'));
MAP TEST.AC03, TARGET TEST.AC03,colmap(usedefaults,UPDATE_TIME=@GETENV('GGHEADER','COMMITTIMESTAMP'));
MAP TEST.AC04, TARGET TEST.AC04,colmap(usedefaults,UPDATE_TIME=@GETENV('GGHEADER','COMMITTIMESTAMP')) KEYCOLS(AAC001);GGSCI (Fedora) 5> 
http://www.dtcms.com/a/477679.html

相关文章:

  • vue3 中播放.flv视频
  • Oracle AWR报告中Load Profile源码
  • 电子商务网站开发的任务书企业文化心得体会
  • 溧阳网站开发kindeditor代码高亮 wordpress
  • CSS常见问题
  • nginx 负载均衡配置
  • 原生 iOS 开发全流程实战,Swift 技术栈、工程结构、自动化上传与上架发布指南
  • Apache开源许可证:深度解析与实践指南
  • Python Web开发——HTTP协议简介
  • 病理切片可解释性分析-细胞类型、核形态与细胞间相互作用
  • 【C语言】杨辉三角:数学之美与编程实现的完美结合
  • 盐城网站建设策划方案杭州企业求网站建设
  • 基于.NET Framework 4.0的串口通信
  • Mybatis Log Free插件使用
  • asp网站可运行jsp吗专做立体化的网站
  • angie未生成coredump文件
  • 【leetcode刷题007】leetcode116、117
  • 南昌网站推广¥做下拉去118cr如何做实验室网站
  • 从0开始搭建Vue3项目
  • 【知识】Linux将多条指令合并为一条执行
  • 将 MapReduce 程序打成 JAR 包并在 Linux 虚拟机的 Hadoop 集群上运行
  • 06_Miniconda零基础安装配置指南:打造高效的Python开发环境
  • 量子计算与AI融合:材料科学新突破!!
  • 徐州网站建设方案咨询外贸牛
  • 顶级 AI 模型横评:智能、性能与价格等方面全面对比
  • Vuex 详细用法(Vue2 和 Vue3)
  • 注册公司网站如何注册黑龙江公共资源交易网官网
  • 如何将iPhone上的HEIF图像下载到电脑
  • 欧洲宇航局使用Varjo XR头戴设备为宇航员提供虚拟现实空间站任务训练
  • iphone IOS3~IOS9游戏 旧iphone 单机游戏合集分享