共计 964 个字符,预计需要花费 3 分钟才能阅读完成。
虚拟机上可以正常访问数据库,但是在物理机上连接数据库时出现“ORA-12170:TNS: 连接超时”时,可以用以下思路解决问题。
一、检查网络
1.ping ip 地址 查看网络问题,看能否 ping 通;
2.tnsping ip 地址(或者是服务器的实例名 SID)如果报“TNS-12535: 操作超时“,可能是服务器端防火墙,没有关闭;
3.netstat -na 查看 1521 端口是否关闭
4.lsnrctl status lsnrctl 是 listener-control 监听器的缩写,查看监听的状态
如果检查出来是防火墙的问题,则可以关闭防火墙或者修改防火墙规则来解决该问题(目前只遇到访问墙的问题)。
二、防火墙问题
2.1 关闭防火墙
chkconfig iptables off;# 重启后失效
/etc/init.d/iptables stop;# 立即失效
2.2 修改防火墙规则
1)直接打开端口
iptables -I INPUT -p tcp –dport 1521 -j ACCEPT;#1521 是端口号;
#如果要删除规则,就使用 iptables -D INPUT number;
#number 可以用 /etc/init.d/iptables status 来查看
#使用这种方式,机器重启或者防火墙关闭再打开,该规则失效。
2)永久打开某端口
首先,用 vim 打开防火墙配置文件:
vim /etc/sysconfig/iptables
然后,在 iptables 文件内容中,在默认的 22 端口下一行添加如下内容:
-A INPUT -m state –state NEW -m tcp -p tcp –dport 1521 -j ACCEPT
最后,保存配置文件后,执行如下命令重启防火墙:
/etc/init.d/iptables restart
# 经过测试,在 /etc/sysconfig/iptables 中添加“-A……”这条内容是,在位置 1 添加语句,重启防火墙后可以连接数据库;在 2 处添加语句,重启防火墙后仍然是报“ORA-12170:TNS: 连接超时”。
更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-07/133320.htm