暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

zCloud 中 Oracle 实例状态未知问题记录

原创 Lucifer三思而后行 2024-08-20
241

大家好,这里是 Lucifer三思而后行,专注于提升数据库运维效率。

目录

前言

使用 zCloud 纳管 Oracle 数据库后,发现是 <实例可连接状态> 一直都是 未知 状态:

首先排除数据库本身问题,使用本地使用客户端连接:

## 可以正常连接,没有问题 [oracle@rhel8:/home/oracle]$ sqlplus system/oracle@192.168.6.220/lucifer SQL*Plus: Release 19.0.0.0.0 - Production on Tue Aug 20 10:24:23 2024 Version 19.24.0.0.0 Copyright (c) 1982, 2024, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options system@LUCIFER 2024-08-20 10:24:24>

出于好奇在群里寻找官方咨询后,得出答案是因为 zCloud 容器内部缺少依赖包:libaio,以下记录一下问题分析过程,如有遇到相同问题的可以参照以下方式进行解决。

问题分析

首先,查看 Prometheus:在浏览器输入,IP:8093:

image.png

查看 oracle-hr:

本来是想通过 http://172.18.0.2:8203/metrics-hr2 查看日志,但是由于是容器内部的网络,Proxy 里面的oracle-exporter 没有放开,所以无法在外部打开,所以需要进入容器内部,去查看 oracle-exporter 的日志,看看是什么原因导致数据库确实链接不上。

进入 zCloud 容器内部:

## 查看容器 [root@zcloud ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 79d21622a6c6 zcloud_with_mysql:6.2.1 "/bin/sh -c $HOME/in…" 21 hours ago Up 21 hours (healthy) 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:8093->8093/tcp, :::8093->8093/tcp, 0.0.0.0:8100-8101->8100-8101/tcp, :::8100-8101->8100-8101/tcp, 0.0.0.0:8200-8201->8200-8201/tcp, :::8200-8201->8200-8201/tcp, 0.0.0.0:8215->8215/tcp, :::8215->8215/tcp, 0.0.0.0:8500->8500/tcp, :::8500->8500/tcp, 0.0.0.0:8761->8761/tcp, :::8761->8761/tcp zcloud b1064b92f817 mysql_for_z:5.7.44 "/home/mysql/init.sh" 21 hours ago Up 21 hours (healthy) 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp mysql_for_zcloud ## 进入 zCloud 容器内部 [root@zcloud soft]# docker exec -it zcloud bash [zcloud@79d21622a6c6 ~]$

找到 oracle-exporter 日志:

[zcloud@79d21622a6c6 ~]$ ls check.sh config.properties data dbaas init init.sh libs proxy rpms sqls [zcloud@79d21622a6c6 ~]$ cd proxy/ [zcloud@79d21622a6c6 proxy]$ ls chisel common exporters insight log notRootMonitor notRoot.sh proxy rceEngine root.sh winrm zcloud_proxy_nginx zcloud_zdbmon_collector chitu config firewallPort.sh java-io-tmpdir logs notRootProxyOperate.sh obClient proxyOperate.sh redisClient updateEnv.sh zcloud_mysql_soar zcloud_slowmon_collector zcloud_zoramon [zcloud@79d21622a6c6 proxy]$ cd log [zcloud@79d21622a6c6 log]$ ls chisel.log proxy_info.log zcloud_custom_sql_exporter_info_2024-08-19.0.log.zip zcloud_db2_exporter.log zcloud_mysql_exporter.log zcloud_oracle_exporter.log zcloud_redis_exporter.log zcloud_zoramon_collector.log monitor.log zcloud_commondb_exporter.log zcloud_custom_sql_exporter_info.log zcloud_mongodb_exporter.log zcloud_node_exporter_2024-08-19.0.log.zip zcloud_postgres_exporter.log zcloud_slowmon_collector.log proxy_info.1.log.zip zcloud_custom_sql_exporter_error.log zcloud_custom_sql_exporter_warn.log zcloud_mssql_exporter.log zcloud_node_exporter.log zcloud_rce_engine_20240819_1.log zcloud_zdbmon_collector.log

打开 oracle-exporter 日志,发现是 Docker 里面缺少一个依赖(BUG):

## 报错消息,提示:libclntsh.so: cannot open shared object file: No such file or directory time=2024-08-20 10:33:20 level=info file=oracle_common.go:584 msg=97189ea4-17b7-412a-a6a7-a51b0d7959a2->6876,query connection count failed time=2024-08-20 10:33:20 level=error file=oracle_exporter.go:696 id=97189ea4-17b7-412a-a6a7-a51b0d7959a2 instance=lucifer type=exporter_hr2 msg=97189ea4-17b7-412a-a6a7-a51b0d7959a2->6876,collect connectCount error:ORA-00000: DPI-1047: Cannot locate a 64-bit Oracle Client library: "/home/zcloud/proxy/common/instantclient_12_1/lib/libclntsh.so: cannot open shared object file: No such file or directory". See https://oracle.github.io/odpi/doc/installation.html#linux for help

需要在 zCloud 容器内部安装缺少的依赖包 libaio 进行修复。

解决方案

上传并安装 libaio 依赖包:

libaio 依赖包下载地址:libaio-0.3.109-13.el7.x86_64.rpm

## 上传 libaio 依赖包 [root@zcloud ~]# cd /soft/ [root@zcloud soft]# ll libaio-0.3.109-13.el7.x86_64.rpm -r--r--r--. 1 root root 24744 Aug 20 10:32 libaio-0.3.109-13.el7.x86_64.rpm drwxr-xr-x. 3 root root 180 Aug 19 13:35 zCloud_6.2.1.1_For_Personal_mysql_X86_20240809_1504 -rw-r--r--. 1 root root 4133808651 Aug 18 23:05 zCloud_6.2.1.1_For_Personal_mysql_X86_20240809_1504.tar.gz drwxr-xr-x. 3 root root 180 Aug 5 09:33 zCloud_6.2.1_For_Personal_mysql_X86_20240730_1657 -rwxr-xr-x. 1 root root 4123537621 Aug 5 09:30 zCloud_6.2.1_For_Personal_mysql_X86_20240730_1657.tar.gz ## 拷贝到 zCloud 容器内部 [root@zcloud soft]# docker cp /soft/libaio-0.3.109-13.el7.x86_64.rpm zcloud:/tmp/libaio-0.3.109-13.el7.x86_64.rpm Successfully copied 26.6kB to zcloud:/tmp/libaio-0.3.109-13.el7.x86_64.rpm ## 执行安装 [root@zcloud soft]# docker exec -u root -it zcloud rpm -ivh /tmp/libaio-0.3.109-13.el7.x86_64.rpm warning: /tmp/libaio-0.3.109-13.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY Preparing... ################################# [100%] Updating / installing... 1:libaio-0.3.109-13.el7 ################################# [100%]

安装完成后,再次查看实例状态(已恢复正常,显示可连接):

查看 oracle-exporter 日志:

## 没有报错日志出现 time=2024-08-20 10:46:14 level=info file=oracle_common.go:323 msg=97189ea4-17b7-412a-a6a7-a51b0d7959a2->99183,period:lr2,instance:[97189ea4-17b7-412a-a6a7-a51b0d7959a2],permit to create long connection time=2024-08-20 10:46:14 level=info file=oracle_common.go:340 msg=97189ea4-17b7-412a-a6a7-a51b0d7959a2->99183,period:lr2,instanceUUID:97189ea4-17b7-412a-a6a7-a51b0d7959a2,isHr2:[false],create connection , start...

至此,问题已解决,该 BUG 暂时可以按以上方式进行临时处理,会在下个 zCloud 更新版本中完全修复。


往期精彩文章推荐

一篇文章让你彻底掌握 Python 🔥
一篇文章让你彻底掌握 Shell 🔥
Oracle 监控 EMCC 13.5 安装部署超详细教程 🔥
Oracle 一键巡检自动生成 Word 报告 🔥
Oracle一键安装脚本的 21 个疑问与解答 🔥
Oracle一键巡检脚本的 21 个疑问与解答 🔥
全网首发:Oracle 23ai 一键安装脚本 🔥
Oracle 19C 最新 RU 补丁 19.24 ,一键安装! 🔥
Oracle Linux 6 一键安装 Oracle 11GR2 RAC
Oracle Linux 7.9 一键安装 Oracle 19C
Oracle Linux 8.9 一键安装 Oracle 19C RAC
Oracle Linux 9.4(aarch64) 一键安装 Oracle 19C 🔥
openEuler 20.03 LTS SP4 一键安装 Oracle 19C 🔥
openEuler 22.03 LTS SP4 一键安装 Oracle 19C RAC
RHEL 7.9 一键安装 Oracle 19C 19.23 RAC
Redhat 8.4 一键安装 Oracle 11GR2
RedHat 9.4(aarch64) 一键安装 Oracle 19C
龙蜥 Anolis 7.9 一键安装 Oracle 19C 19.23
龙蜥 Anolis OS 8.8 一键安装 Oracle 19C
SUSE 15 SP5 一键安装 Oracle 19C
统信 UOS V20 1070(a) 一键安装 Oracle 11GR2
Ubuntu 22.04 一键安装 Oracle 19C
Ubuntu 14.04 一键安装 Oracle 19C
银河麒麟 Kylin V10 SP3 一键安装 Oracle 19C 🔥
银河麒麟 Kylin V10 SP3 一键安装 Oracle 11GR2 RAC
Oracle DataGuard GAP 修复手册 🔥
优化 Oracle:最佳实践与开发规范
DBA 必备:Linux 软件源配置全攻略 🔥
Linux 一键配置时钟同步全攻略 🔥
Starwind 配置 ISCSI 共享存储
SUSE 15 SP3 安装 Oracle 19C RAC 数据库
达梦 8 数据库安装手册 🔥
Oracle 12CR2 RAC 安装避坑宝典
Linux7 安装 Oracle 19C RAC 详细图文教程 🔥
Oracle ADG 搭建 RAC to Single 详细教程
Oracle DataGuard GAP 修复手册 🔥
Oracle 分区表之在线重定义
AutoUpgrade 快速升级 Oracle 数据库
Oracle 数据库巡检命令手册 🔥
Oracle 数据坏块的 N 种修复方式 🔥
数据库 SQL 开发入门教程
超全 Linux 基础命令总结 🔥
VMware 虚拟机安装 Linux 系统
Linux 安装 MySQL 详细教程
教你玩转 SQLPLUS,工作效率提升 200%


感谢您的阅读,这里是 Lucifer三思而后行,欢迎 点赞+关注,我会持续分享数据库知识、运维技巧。

最后修改时间:2024-08-20 11:06:06
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论