ora-12547问题排查

3 篇文章 0 订阅
2 篇文章 0 订阅

背景: 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)
把这两行注释,不做监听限制,解决问题。

Navicat for Oracle 是一款非常流行的 Oracle 数据库管理工具,很多开发人员在使用它连接数据库时会遇到各种问题。其中比较常见的一个问题就是 ORA-12547 错误,这个错误通常是由于 Oracle 客户端的配置问题导致的。 首先,可能是因为在 Navicat 中设置的 Oracle 客户端的路径不正确或者客户端不存在,可以检查一下客户端路径是否正确,并且确认客户端已经正确安装。这个错误可能也是由于版本不兼容导致的,如果 Navicat 的版本与 Oracle 客户端版本不兼容会导致无法连接数据库问题,所以需要注意确认 Navicat 版本和 Oracle 客户端版本是否匹配。 其次,可能是因为 Oracle 客户端的环境变量没有正确设置。在连接 Oracle 数据库时,需要设置 ORACLE_HOME 环境变量以及将 Oracle 客户端目录添加到 PATH 环境变量中。如果这些环境变量没有正确设置,也会导致 ORA-12547 错误的出现。 另外,还有一种可能性是 Navicat 的连接字符串出现了问题。可以检查一下连接字符串是否正确填写,确认用户名、密码、主机名和实例名是否正确,尤其是主机名和实例名这两个参数需要非常注意,可能是导致连接失败的主要问题。 总之,遇到 ORA-12547 错误时,可以尝试按照上述步骤逐一排查,找到具体的原因并进行修复。还需要注意的是,Oracle 数据库连接问题比较复杂,如果遇到无法解决的问题,可以寻求 Oracle 官方支持或者专业的数据库技术支持来解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值