varkai

此心不动,随机而动。

DNS 引发的 Oracle 数据库监听故障解决

2019.02.28 运维

今天上午公司 Oracle 数据库连接非常的慢,甚至无法连接,于是决定先重启服务器看问题是否解决,重启后问题依旧,登入服务器查看监听状态,发现一直停留在正在连接状态。

$ su - oracle
$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 03-4月 -2019 13:58:55

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))

后经网上几番查阅并尝试,发现是服务器配置了公共 DNS,可能公共 DNS 出现了故障,导致连接监听缓慢,把 DNS 配置注释掉后就恢复正常了。

$ vi /etc/resolv.conf

# Generated by NetworkManager
# nameserver 119.29.29.29

还有一个方法就是修改 sshd 配置文件,将 UseDNS 参数设置为 no,不解析 DNS

$ su - root
$ vi /etc/ssh/sshd_config

UseDNS no

如果服务器只是内网使用,去掉 DNS 不会有什么影响,如果服务器需要访问外部网络,则必须配置 DNS,最后这种方法即可以保留 DNS 配置也不会对 Oracle 监听产生影响。