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

记一次docker中的oracle连接问题-LMLPHP

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

1、没有oracle用户

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

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

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

查看pmon的父进程

记一次docker中的oracle连接问题-LMLPHP

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

 试了下docker ps果然是个容器

记一次docker中的oracle连接问题-LMLPHP

从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中的oracle连接问题-LMLPHP

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

用netstat确认端口正常

netstat -lnutp |grep 1521  

用nc确认端口也正常

nc -v -w 3 ip port

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

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

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

05-25 11:05