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

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

前言

这两天在写 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.shSuccessfully 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.0558Copyright (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

大家可以自行测试一下。

相关文章:

  • 25、DeepSeek-R1论文笔记
  • 设计模式7大原则与UML类图详解
  • C++学习:六个月从基础到就业——C++11/14:列表初始化
  • 数学复习笔记 19
  • JDK 21新特性全面解析
  • 【大模型面试每日一题】Day 21:对比Chain-of-Thought(CoT)与Self-Consistency在复杂推理任务中的优劣
  • Android开发——轮播图引入
  • 微积分基本规则及示例解析
  • 机器学习-人与机器生数据的区分模型测试-数据处理 - 续
  • 【Linux网络编程】Socket编程:协议理论入门
  • 数据中台驱动生产流程优化:从孤岛到全局敏捷
  • 游戏引擎学习第290天:完成分离渲染
  • ORACLE数据库实例报错ORA-00470: LGWR process terminated with error宕机问题分析报告
  • Java 原生网络编程(BIO | NIO | Reactor 模式)
  • 下集:一条打包到底的静态部署之路
  • hadoop.proxyuser.代理用户.授信域 用来干什么的
  • jvm安全点(二)openjdk17 c++源码垃圾回收安全点信号函数处理线程阻塞
  • 免费代理IP服务有哪些隐患?如何安全使用?
  • 中国各省供水量、用水量相关数据(2003-2022年)-社科数据
  • (3)python爬虫--Xpath
  • 出走的苏敏阿姨一路走到了戛纳,这块红毯因她而多元
  • 李成钢出席中国与《数字经济伙伴关系协定》成员部级会议
  • 上海市税务局回应刘晓庆被举报涉嫌偷漏税:正依法依规办理
  • 最高法、证监会:常态化开展证券纠纷代表人诉讼,降低投资者维权成本
  • 获派驻6年后,中国驻厄瓜多尔大使陈国友即将离任
  • 外企聊营商|威能集团:公平环境增“暖”意