背景: web服务器地址(192.168.0.160),数据库DB服务器地址(192.168.0.161) ,在DB服务器安装完Oracle 18.3.0.0.0 ,发现sqlplus可以正常访问数据,但是web160服务无法访问,远程plsql也无法访问,分析步骤?
步骤一.分析IP地址访问问题
1.检查防火墙(发现没有问题)
1、查看firewall服务状态
systemctl status firewalld
出现Active: active (running)切高亮显示则表示是启动状态。
出现 Active: inactive (dead)灰色表示停止,看单词也行。
2、查看firewall的状态
firewall-cmd --state
3、开启、重启、关闭、firewalld.service服务
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
4、查看防火墙规则
firewall-cmd --list-all
5、查询、开放、关闭端口
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
2.远程工具telnet
[root@localhost ~]# telnet 192.168.0.161 22
Trying 192.168.0.161...
Connected to 192.168.0.161.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4
16:26[root@centos ~]# telnet 192.168.0.161 1521
Trying 192.168.0.161...
Connected to 192.168.0.161.
Escape character is '^]'.
Connection closed by foreign host.
3.分析确认Oracle服务问题
通过telnet,判断ip地址访问没有问题,基本确认是Oracle数据库服务的问题(包括:端口1521,监听 等)
步骤二:分析Oracle监听服务问题
1.检查listener.ora 监听文件
/u01/app/oracle/product/18.3.0/db_1/network/admin/listener.ora
($ORACLE_HOME//network/admin/listener.ora),注意HOST,PORT配置,以及
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = centos)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
2.检查 /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 centos
192.168.0.161 centos localhost
~
3.通过上诉排除监听服务,以及主机ip配置问题(通过telnet 22端口正常也应该排除)
步骤三:检查Oracle服务的sqlnet.ora 网络配置文件
1.sqlnet.ora文件位置
/u01/app/oracle/product/18.3.0/db_1/network/admin/sqlnet.ora
($ORACLE_HOME//network/admin/sqlnet.ora)
NAMES.DIRECTORY_PATH=(TNSNAMES, ONAMES, HOSTNAME)
SQLNET.EXPIRE_TIME= 10
#tcp.validnode_checking = yes
#tcp.invited_nodes=(EBSTEST.ebsx.com)
SQLNET.INBOUND_CONNECT_TIMEOUT =60
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
2.解决问题
方法1:
这里基本可以断定是监听问题,具体检查后发现sqlnet.ora做了监听限制
tcp.validnode_checking=yes
tcp.invited_nodes=(ip1,ip2,ip3,ip4,ip5,ip6)
将IP添加进允许访问列表即可,然后通过tnsping检查连接正常。
方法2:
#tcp.validnode_checking = yes
#tcp.invited_nodes=(EBSTEST.ebsx.com)
把这两行注释,不做监听限制,解决问题。