远程访问不了oracle

Oracle本地可以连接,但是远程连接不了的问题。

遇到问题,一定要先学会分析结合自己知道的知识点尝试解决问题。如果解决不了,再从网上搜索相关信息。从问题的根源性不断探索解决方法。

今天突然发现公司业务系统访问不了,去后台一看访问没有请求到,再看日志发现访问不了数据库。然后在本地用数据库连接工具,连接超慢最后报10072错,这应该是远程监听配置有问题。默认的监听是localhost 。

(因为业务是政府单位,不方便截图,只说具体的思路)

处理步骤如下:

1、登录linux服务器,切换到oracle下,输入 su - oracle

2、输入命令:sqlplus / as sysdba

3、输入命令:select * from all_tables; 正常,说明本地可以访问。

4、输入命令 lsnrctl status,查看到监听的host=gxffjzdb,端口是1521。这里host指向的应该是本机的计算机名,我们去/etc/hosts验证一下果然是。最后去检查oracle的listener.ora配置,一切正常。

处理到这里,一切都看起来正常。思路有些断了,只好去网上翻翻前人的经验,大部分文章都是说listener.log 这个监测日志超过4g大小就会出现问题。于是我去检查服务器上的监听日志整整16G已经超过4G大小,我本以为问题就出现在这里,心中暗暗窃喜这回问题终于可以解决了。最后把日志文件删了,信心满满地再次点击连接还是不行,难道要重启oracle?重启,问题依旧。

网上出现的不能远程访问oracl大体都是从sqlnet.ora、listener.ora、tnsnames.ora配置和listener.log过大上解决的。

于是我再次把配置检查,一切正常。这时无意看到一篇文章说:翻看了《OCP/OCA认证考试指南手册-oracle database 11g》,书中给了一张oracle net的流程。

远程访问不了oracle_第1张图片
oracle-net.jpg

看了这张图,最后还是把问题定位在了listener监听上。

但是监听配置是没有问题的呀?这就太奇怪了,脑中的想法不断,这时候突然想到监听,那我们去看看linux上的服务和监听。

输入命令: lsof -i

远程访问不了oracle_第2张图片

发现oracle本地与另外一个服务器建立了连接,因为我们本地是无法连接这个oracle。说明另外一个服务器连上了oracle。这是为什么呢?大家都是在同一个局域网上都有权限,你能访问,我不能访问?

然后我想到了日志,日志最能表现问题。(说句题外话,大家在解决问题的时候,一定要看日志,往往日志最能发现问题和提供解决办法的思路)。

输入命令:tail -f  /.../..../.../listeners.log,发现监听日志不断的打印和另外一个服务器的连接,而且通过分析打印的日志,发现user是个集群的名称?联想是否公司大数据团队需要不断的抽取我这个oralce上的数据,我当即向大数据那边反应,不过他们好像很忙,暂时没有空理会我。

最后我想反正这个大数据业务上暂时用不上,索性重启这台服务器。

马上重启,然后测试可以远程连接数据库了,最后重启tomcat上的web服务,访问一切正常。bingo。

问题暂时解决了(因为我只是负责java后端,不是很懂大数据,这个问题就留着以后问大数据同事看看是什么原因吧)

最后总结一下吧。

遇到问题,一定要先学会分析结合自己知道的知识点尝试解决问题。如果解决不了,再从网上搜索相关信息。从问题的根源性不断探索。例如这里远程不能访问oracle,那就要想是不是oralce服务没有启动,服务器上是否可以本地访问oralce呢?如果可以,那是不是oracle监听出现问题了呢?oracle监听没有问题,是不是oralce服务连接有问题?一步步推导,最终解决问题。

你可能感兴趣的:(远程访问不了oracle)