记一次docker中的oracle连接问题

文章描述了一位技术专家解决Oracle数据库报错TNS-12537的过程。问题源于容器环境中的Oracle配置问题,包括数据文件位置不匹配、无oracle用户、PMON进程异常以及sqlnet白名单限制。通过检查docker容器、切换用户、验证端口和网络连接,最终发现并修复了sqlnet的访问限制,成功解决了连接问题。
摘要由CSDN通过智能技术生成

起因是客户登陆时报错TNS-12537

登陆上上服务器后,发现了几个特点。

1、没有oracle用户

2、数据文件的位置和spfile里面写的不一样

3、pmon进程存在,但是父进程ID不是1

4、配置oracle用户及环境变量,但是as sysdba无法登录到数据库

查看pmon的父进程

好家伙,container,看来是个容器。

 试了下docker ps果然是个容器

从docker进入,一气呵成

[root@XXXX ~]# docker exec -it 87a8f4a05fe5 bash
[root@xxxx /]# su - oracle
[oracle@xxxx ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed May 24 10:41:14 2023

Copyright (c) 1982, 2013, 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

SQL> 

 但是TNS-12537没有解决。

通过docker ps可以看到端口映射了

用netstat确认端口正常

netstat -lnutp |grep 1521  

用nc确认端口也正常

nc -v -w 3 ip port

最后从数据库里看,真的设置了sqlnet的白名单。。。。

处理后,连接正常,收工。

学习原理,孵化思路。积累工具,下笔有道。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值