OGGMA 21c 微服务 (MySQL) 安装避坑指南

news2025/7/19 13:40:24

前言

这两天在写 100 天实战课程 的 OGG 微服务课程:

在 Oracle Linux 8.10 上安装 OGGMA 21c MySQL 遇到了一点问题,分享给大家一起避坑!

环境信息

环境信息:

主机版本主机名实例名MySQL 版本IP 地址数据库字符集Goldengate 版本
oel8.10targettdb8.0.0.36192.168.6.121utf8mb421.17

安装前准备

安装目录创建

创建 OGG 安装目录并设置权限:

# root 用户执行
## oggma 用于存放可执行文件
## ogginst 存放 OGGMA 的服务管理器(Service Manager)和部署(Deployment)文件
[root@target ~]# mkdir -p /ogg/{oggma,ogginst}
[root@target ~]# chown -R mysql:mysql /ogg
[root@target ~]# chmod -R 775 /ogg

解压 OGG 安装包

[mysql@target ~]$ cd /soft/
[mysql@target soft]$ unzip -q p37400370_2117000OGGRU_Linux-x86-64.zip

安装 OpenSSL

参考 Oracle GoldenGate Microservices Documentation 官方文档:

  1. Oracle GoldenGate 21c for MySQL requires that OpenSSL 1.0 be installed on the Oracle GoldenGate server prior to creating a deployment.
  2. OpenSSL 1.0 is included with the core operating system packages of OEL 7 and RHEL7 but is not included with OEL8/9 or RHEL 8/9, and therefore must be manually installed for these operating systems/versions.

所以在 OEL8 上安装 OGGMA 21c MySQL 需要提前安装 OpenSSL 1.0:

根据官方文档提示,在 MySQL 官网 https://downloads.mysql.com/archives/c-odbc/ 下载对应的 ODBC 上传到 OGG 服务器主机上:

[root@target soft]# chown mysql:mysql /soft/mysql-connector-odbc-8.0.17-linux-glibc2.12-x86-64bit.tar.gz 
[root@target soft]# su - mysql
[mysql@target ~]$ cd /soft/
[mysql@target soft]$ tar -xf mysql-connector-odbc-8.0.17-linux-glibc2.12-x86-64bit.tar.gz
[mysql@target soft]$ cd mysql-connector-odbc-8.0.17-linux-glibc2.12-x86-64bit/lib/
[mysql@target lib]$ ls
libcrypto.so  libcrypto.so.1.0.0  libmyodbc8a.so  libmyodbc8w.so  libssl.so  libssl.so.1.0.0

配置环境变量:

# root 用户执行
[root@target ~]# cat<<-\EOF >> /etc/profile
export LD_LIBRARY_PATH=/soft/mysql-connector-odbc-8.0.17-linux-glibc2.12-x86-64bit/lib:$LD_LIBRARY_PATH
EOF

到这里,准备工作就完成了。

OGGMA 软件安装

创建静默响应文件

创建静默安装响应文件:

[mysql@target ~]$ cd /soft/ggs_Linux_x64_MySQL_services_shiphome/Disk1/response
[mysql@target response]$ cat<<-EOF>oggcore.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_ogginstall_response_schema_v21_1_0
INSTALL_OPTION=mysql
SOFTWARE_LOCATION=/ogg/oggma
INVENTORY_LOCATION=/ogg/oraInventory
UNIX_GROUP_NAME=mysql
EOF

配置 OGG 环境变量

# mysql 用户执行
[mysql@target ~]$ cat<<-\EOF >> /home/mysql/.bash_profile
export OGG_HOME=/ogg/oggma
export PATH=$OGG_HOME/bin:$OGG_HOME/OPatch:$PATH
EOF

# 生效环境变量
[mysql@target ~]$ source /home/mysql/.bash_profile

执行静默安装

OGGMA 软件安装这里会遇到第一个坑,安装 OGGMA 软件报错:

[mysql@target Disk1]$ ./runInstaller -silent -nowait -responseFile /soft/ggs_Linux_x64_MySQL_services_shiphome/Disk1/response/oggcore.rsp
Starting Oracle Universal Installer...

...
...
...

Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.UnsatisfiedLinkError: /tmp/OraInstall2025-04-27_01-09-12PM/oui/lib/linux64/liboraInstaller.so: libnsl.so.1: cannot open shared object file: No such file or directory [in thread "main"]
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)

...
...
...

根据报错提示:

libnsl.so.1: cannot open shared object file: No such file or directory

明显是缺少 libnsl 包,手动安装 libnsl 包:

[root@target ~]# yum install -y libnsl
[root@target ~]# rpm -qa libnsl
libnsl-2.28-251.0.2.el8.x86_64

安装依赖之后继续执行安装:

[mysql@target ~]$ cd /soft/ggs_Linux_x64_MySQL_services_shiphome/Disk1/
[mysql@target Disk1]$ ./runInstaller -silent -nowait -responseFile /soft/ggs_Linux_x64_MySQL_services_shiphome/Disk1/response/oggcore.rsp
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 81868 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 8191 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2025-04-27_01-22-14PM. Please wait ...[mysql@target Disk1]$ You can find the log of this install session at:
 /tmp/OraInstall2025-04-27_01-22-14PM/installActions2025-04-27_01-22-14PM.log
The installation of Oracle GoldenGate Services for MySQL was successful.
Please check '/ogg/oraInventory/logs/silentInstall2025-04-27_01-22-14PM.log' for more details.

As a root user, execute the following script(s):
        1. /ogg/oraInventory/orainstRoot.sh



Successfully Setup Software.
The log of this install session can be found at:
 /ogg/oraInventory/logs/installActions2025-04-27_01-22-14PM.log

执行 orainstRoot.sh 脚本:

[root@target ~]# /ogg/oraInventory/orainstRoot.sh
Changing permissions of /ogg/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /ogg/oraInventory to mysql.
The execution of the script is complete.

安装完成后,可以通过日志文件检查安装结果:

/ogg/oraInventory/logs/installActions2025-04-27_01-22-14PM.log

OGGMA 软件安装完成。

OGGMA 服务配置

使用图形化工具 oggca.sh 配置服务管理器和部署(建议使用 vnc 软件):

[mysql@target ~]$ source /etc/profile
[mysql@target ~]$ echo $LD_LIBRARY_PATH 
/soft/mysql-connector-odbc-8.0.17-linux-glibc2.12-x86-64bit/lib:/soft/mysql-connector-odbc-8.0.17-linux-glibc2.12-x86-64bit/lib:
[mysql@target ~]$ oggca.sh

建议使用图形化部署,比较直观!

填写 service manager 部署目录 /ogg/ogginst/sm,address 填写 OGGMA 本机 IP 即可,端口 7809

创建一个新的 deploy:

填写 deploy 名称以及软件安装目录:

填写 deploy 部署目录 /ogg/ogginst/dep

默认即可:

创建一个管理账号,默认为 oggadmin:

都不勾选:

端口依次从 7810 开始,勾选开启监控:

OGG 默认的用户 ogg,后面需要创建:

执行安装:

执行 root.sh 脚本:

[root@target ~]# /ogg/ogginst/sm/bin/registerServiceManager.sh
Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved.
----------------------------------------------------
     Oracle GoldenGate Install As Service Script    
----------------------------------------------------
OGG_HOME=/ogg/oggma
OGG_CONF_HOME=/ogg/ogginst/sm/etc/conf
OGG_VAR_HOME=/ogg/ogginst/sm/var
OGG_USER=mysql
Running OracleGoldenGateInstall.sh...
Created symlink /etc/systemd/system/multi-user.target.wants/OracleGoldenGate.service → /etc/systemd/system/OracleGoldenGate.service.

坑二

本来正常情况下,注册完服务就安装完成了,但是这里报错了:

在 MOS 上也搜不到相关报错(即使有也不符合),经曹神指导检查,发现是缺包:

[mysql@target ~]$ adminsrvr 
adminsrvr: error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory

报错缺少 libssl.so.10,可是我们前面已经安装了 libssl 怎么还会缺少呢?再一细看,原来之前安装的是 so.1.0.0,这里要的是 so.10,版本不匹配。

最简单的解决方式就是链接一个 so.10 出来:

[mysql@target ~]$ cd /soft/mysql-connector-odbc-8.0.17-linux-glibc2.12-x86-64bit/lib
[mysql@target lib]$ ln -sf libssl.so libssl.so.10
[mysql@target lib]$ ll
total 36136
lrwxrwxrwx. 1 mysql mysql       18 Jun 19  2019 libcrypto.so -> libcrypto.so.1.0.0
-rw-r--r--. 1 mysql mysql  2605390 Jun 19  2019 libcrypto.so.1.0.0
-rwxr-xr-x. 1 mysql mysql 16925360 Jun 19  2019 libmyodbc8a.so
-rwxr-xr-x. 1 mysql mysql 16946136 Jun 19  2019 libmyodbc8w.so
lrwxrwxrwx. 1 mysql mysql       15 Jun 19  2019 libssl.so -> libssl.so.1.0.0
lrwxrwxrwx. 1 mysql mysql        9 Apr 27 12:38 libssl.so.10 -> libssl.so
-rw-r--r--. 1 mysql mysql   512744 Jun 19  2019 libssl.so.1.0.0

测试一下是否还缺包:

[mysql@target lib]$ adminsrvr
adminsrvr: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory

同样的再链接一个:

[mysql@target lib]$ ln -sf libcrypto.so libcrypto.so.10
[mysql@target lib]$ ll
total 36136
lrwxrwxrwx. 1 mysql mysql       18 Jun 19  2019 libcrypto.so -> libcrypto.so.1.0.0
lrwxrwxrwx. 1 mysql mysql       12 Apr 27 12:45 libcrypto.so.10 -> libcrypto.so
-rw-r--r--. 1 mysql mysql  2605390 Jun 19  2019 libcrypto.so.1.0.0
-rwxr-xr-x. 1 mysql mysql 16925360 Jun 19  2019 libmyodbc8a.so
-rwxr-xr-x. 1 mysql mysql 16946136 Jun 19  2019 libmyodbc8w.so
lrwxrwxrwx. 1 mysql mysql       15 Jun 19  2019 libssl.so -> libssl.so.1.0.0
lrwxrwxrwx. 1 mysql mysql        9 Apr 27 12:42 libssl.so.10 -> libssl.so
-rw-r--r--. 1 mysql mysql   512744 Jun 19  2019 libssl.so.1.0.0

再次测试一下是否还缺包:

[mysql@target lib]$ adminsrvr
adminsrvr: /soft/mysql-connector-odbc-8.0.17-linux-glibc2.12-x86-64bit/lib/libcrypto.so.10: no version information available (required by /ogg/oggma/bin/../lib/libmysqlclient.so.21)
adminsrvr: /soft/mysql-connector-odbc-8.0.17-linux-glibc2.12-x86-64bit/lib/libssl.so.10: no version information available (required by /ogg/oggma/bin/../lib/libmysqlclient.so.21)
Oracle GoldenGate Administration Service for MySQL
Version 21.17.0.0.0 OGGCORE_21.17.0.0.0OGGRU_PLATFORMS_250125.0558

Copyright (C) 1995, 2025, Oracle and/or its affiliates. All rights reserved.

Oracle Linux 7, x64, 64bit (optimized), MySQL  on Jan 25 2025 10:57:34
Operating system character set identified as UTF-8.

确保正常之后,这里无法继续安装,否则还是会报错!需要删除 OGGCA 相关服务以及文件,重新配置:

[root@target ~]# rm -rf /etc/systemd/system/OracleGoldenGate.service
[root@target ~]# rm -rf /etc/oggInst.loc
[mysql@target lib]$ cd /ogg/ogginst/
[mysql@target ogginst]$ ls
dep  sm
[mysql@target ogginst]$ rm -rf *
[mysql@target ogginst]$ ps -ef|grep -v grep|grep ServiceManager
mysql      33033       1  0 12:41 ?        00:00:01 /ogg/oggma/bin/ServiceManager --inventory '/ogg/ogginst/sm/etc/conf'
[mysql@target ogginst]$ kill -9 33033

重新配置 OGGCA 之前,建议手动设置一下环境变量:

export LD_LIBRARY_PATH=/soft/mysql-connector-odbc-8.0.17-linux-glibc2.12-x86-64bit/lib:$LD_LIBRARY_PAT
[mysql@target ~]$ oggca.sh 

这次顺利安装,一次成功:

服务启动后,可以通过浏览器访问 OGGMA 管理界面,网址为:http://192.168.6.121:7810

输入账号(oggadmin)密码连接:

这里可以看到 OGGMA 的版本是 21.17 版本。

写在最后

大家在使用 OGG 的时候还遇到过哪些坑呢?欢迎评论区分享~

追加

曹总后续给了替代解决方案:

dnf install openssl-devel compat-openssl10

大家可以自行测试一下。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux面试题集合(4)

现有压缩文件:a.tar.gz存在于etc目录&#xff0c;如何解压到data目录 tar -zxvf /etc/a.tar.gz -C /data 给admin.txt创建一个软链接 ln -s admin.txt adminl 查找etc目录下以vilinux开头的文件 find /etc -name vilinux* 查找admin目录下以test开头的文件 find admin -name te…

Android Studio 安装与配置完全指南

文章目录 第一部分&#xff1a;Android Studio 简介与安装准备1.1 Android Studio 概述1.2 系统要求Windows 系统&#xff1a;macOS 系统&#xff1a;Linux 系统&#xff1a; 1.3 下载 Android Studio 第二部分&#xff1a;安装 Android Studio2.1 Windows 系统安装步骤2.2 mac…

基于 Zookeeper 部署 Kafka 集群

文章目录 1、前期准备2、安装 JDK 83、搭建 Zookeeper 集群3.1、下载3.2、调整配置3.3、标记节点3.4、启动集群 4、搭建 Kafka 集群4.1、下载4.2、调整配置4.3、启动集群 1、前期准备 本次集群搭建使用&#xff1a;3 Zookeeper 3 Kafka&#xff0c;所以我在阿里云租了3台ECS用…

IDE/IoT/搭建物联网(LiteOS)集成开发环境,基于 LiteOS Studio + GCC + JLink

文章目录 概述LiteOS Studio不推荐&#xff1f;安装和使用手册呢?HCIP实验的源码呢&#xff1f; 软件和依赖安装软件下载软件安装插件安装依赖工具-方案2依赖工具-方案1 工程配置打开或新建工程板卡配置组件配置编译器配置-gcc工具链编译器配置-Makefile脚本其他配置编译完成 …

算法加训之最短路 上(dijkstra算法)

目录 P4779 【模板】单源最短路径&#xff08;标准版&#xff09;&#xff08;洛谷&#xff09; 思路 743. 网络延迟时间&#xff08;力扣&#xff09; 思路 1514.概率最大路径&#xff08;力扣&#xff09; 思路 1631.最小体力消耗路径 思路 1976. 到达目的地的方案数 …

QT+Opencv 卡尺工具找直线

QTOpencv 卡尺工具找直线 自己将别的项目中&#xff0c;单独整理出来的。实现了一个找直线的工具类。 功能如下&#xff1a;1.添加图片 2.添加卡尺工具 3.鼠标可任意拖动图片和卡尺工具 4.可调整卡尺参数和直线拟合参数 5.程序中包含了接口函数&#xff0c;其他cpp文件传入相…

GraphPad Prism简介、安装与工作界面

《2025GraphPad Prism操作教程书籍 GraphPad Prism图表可视化与统计数据分析视频教学版GraphPad Prism科技绘图与数据分析学术图表 GraphPadPrism图表》【摘要 书评 试读】- 京东图书 GraphPad Prism统计数据分析_夏天又到了的博客-CSDN博客 1.1 GraphPad Prism简介 GraphP…

esp32课设记录(一)按键的短按、长按与双击

课程用的esp32的板子上只有一个按键&#xff0c;引脚几乎都被我用光了&#xff0c;很难再外置按键。怎么控制屏幕的gui呢&#xff1f;这就得充分利用按键了&#xff0c;比如说短按、长按与双击&#xff0c;实现不同的功能。 咱们先从短按入手讲起。 通过查看原理图&#xff0c;…

React19源码系列之 API(react-dom)

API之 preconnect preconnect – React 中文文档 preconnect 函数向浏览器提供一个提示&#xff0c;告诉它应该打开到给定服务器的连接。如果浏览器选择这样做&#xff0c;则可以加快从该服务器加载资源的速度。 preconnect(href) 一、使用例子 import { preconnect } fro…

supervisorctl守护进程

supervisorctl守护进程 1 安装 # ubuntu安装&#xff1a; sudo apt-get install supervisor 完成后可以在/etc/supervisor文件夹&#xff0c;找到supervisor.conf。 如果没有的话可以用如下命令创建配置文件&#xff08;注意必须存在/etc/supervisor这个文件夹&#xff09; s…

下载的旧版的jenkins,为什么没有旧版的插件

下载的旧版的jenkins&#xff0c;为什么没有旧版的插件&#xff0c;别急 我的jenkins版本&#xff1a; 然后我去找对应的插件 https://updates.jenkins.io/download/plugins/ 1、Maven Integration plugin&#xff1a; Maven 集成管理插件。 然后点击及下载成功 然后 注意&…

【ALINX 实战笔记】FPGA 大神 Adam Taylor 使用 ChipScope 调试 AMD Versal 设计

本篇文章来自 FPGA 大神、Ardiuvo & Hackster.IO 知名博主 Adam Taylor。在这里感谢 Adam Taylor 对 ALINX 产品的关注与使用。为了让文章更易阅读&#xff0c;我们在原文的基础上作了一些灵活的调整。原文链接已贴在文章底部&#xff0c;欢迎大家在评论区友好互动。 在上篇…

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】附录-A. PostgreSQL常用函数速查表

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 PostgreSQL常用函数速查表:从数据清洗到分析的全场景工具集引言一、字符串处理函数1.1 基础操作函数1.2 模式匹配函数(正则表达式)二、数值计算函数2.1 基础运算函数2.2 统计相关函数三、日期与时间函…

【时空图神经网络 交通】相关模型2:STSGCN | 时空同步图卷积网络 | 空间相关性,时间相关性,空间-时间异质性

注:仅学习使用~ 前情提要: 【时空图神经网络 & 交通】相关模型1:STGCN | 完全卷积结构,高效的图卷积近似,瓶颈策略 | 时间门控卷积层:GLU(Gated Linear Unit),一种特殊的非线性门控单元目录 STSGCN-2020年1.1 背景1.2 模型1.2.1 问题背景:现有模型存在的问题1.2…

docker 学习记录

docker pull nginx docker 将本地nginx快照保存到当前文件夹下 docker save -o nginx.tar nginx:latestdocker 将本地nginx 加载 docker load -i nginx.tar docker运行nginx在80端口 docker run --name dnginx -p 80:80 -d nginxredis启动 docker run --name mr -p 6379:6379 -…

南京邮电大学金工实习答案

一、金工实习的定义 金工实习是机械类专业学生一项重要的实践课程&#xff0c;它绝非仅仅只是理论知识在操作层面的简单验证&#xff0c;而是一个全方位培养学生综合实践能力与职业素养的系统工程。从本质上而言&#xff0c;金工实习是学生走出教室&#xff0c;亲身踏入机械加…

世界模型+大模型+自动驾驶 论文小汇总

最近看了一些论文&#xff0c;懒得一个个写博客了&#xff0c;直接汇总起来 文章目录 大模型VLM-ADVLM-E2EOpenDriveVLAFASIONAD&#xff1a;自适应反馈的类人自动驾驶中快速和慢速思维融合系统快系统慢系统快慢结合 世界模型End-to-End Driving with Online Trajectory Evalu…

C++函数三剑客:缺省参数·函数重载·引用的高效编程指南

前引&#xff1a;在C编程中&#xff0c;缺省参数、函数重载、引用是提升代码简洁性、复用性和效率的三大核心机制。它们既能减少冗杂的代码&#xff0c;又能增强接口设计的灵活性。本文将通过清晰的理论解析与实战案列&#xff0c;带你深入理解这三者的设计思想、使用场景以及闭…

SWUST数据结构下半期实验练习题

1068: 图的按录入顺序深度优先搜索 #include"iostream" using namespace std; #include"cstring" int visited[100]; char s[100]; int a[100][100]; int n; void dfs(int k,int n) {if(visited[k]0){visited[k]1;cout<<s[k];for(int i0;i<n;i){i…

机器学习 Day18 Support Vector Machine ——最优美的机器学习算法

1.问题导入&#xff1a; 2.SVM定义和一些最优化理论 2.1SVM中的定义 2.1.1 定义 SVM 定义&#xff1a;SVM&#xff08;Support Vector Machine&#xff0c;支持向量机&#xff09;核心是寻找超平面将样本分成两类且间隔最大 。它功能多样&#xff0c;可用于线性或非线性分类…