起因是客户登陆时报错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的白名单。。。。
处理后,连接正常,收工。
学习原理,孵化思路。积累工具,下笔有道。