Oracle重启后-远程无法访问
2016-09-06 本文已影响862人
灼灼2015
对于现网已运行N久的oracle,突然连接不到了,所有人都说没有动过什么。
这么妖怪的事情,怎么可能是没动过什么地方呢?
事情已经被处理了一个小时以上,无果。
流转到我手里-30分钟,无果。
BOSS请了个外援一个小时,无果。
历经三个人的手,最后因猜测-修改配置后搞定,只能说运气好。
在对方不了解你的环境部署和网络环境时,请外援不一定能快速地解决问题。因为他需要时间去判断-我们描述的现象去和具体环境做个对比,好确定问题到底出现在哪里。
网络部署图
oracle-网络图.jpg
oracle服务器和应用服务器在同一网段-网络是互通的。
oracle启动后,本机用sqlplus连接是OK的,但是应用服务器就是访问不到。
刚开始看日志查到 clsc.log 中有异常,还以为是这个异常导致了远程访问不了,在处理这个问题,在错误的道路上越走越远。
clsc.log
2016-09-04 09:55:32.353: [ default][3527604032]utgdv:2:ocr loc file /etc/oracle/olr.loc cannot be opened. errno 2
[ CLSE][3527604032]clse_get_crs_home: Error retrieving OLR configuration [0] [Error opening olr.loc file. No such file or directory]
之后开始检查配置sqlnet.ora、listener.ora 、tnsnames.ora和/etc/hosts
一:host 和/etc/hosts中定义的不同-改成一致
二:删除了listener.ora中部分配置
以后处理了问题-及时总结,不然等两三个月后-好些细节都忘记啦,总结的意义就大大折扣啦
正确的配置如下:
sqlnet.ora 配置
# sqlnet.ora Network Configuration File: /opt/oracle_11/product/112010/db_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
ADR_BASE = /opt/oracle_11
listener.ora 配置
# listener.ora Network Configuration File: /opt/oracle_11/product/112010/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = chances123)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /opt/oracle_11
tnsnames.ora配置
# tnsnames.ora Network Configuration File: /opt/oracle_11/product/112010/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = chances123)(PORT = 1521))
(CONNECT_DATA =
(SID=ORCL)
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
/etc/hosts配置
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.220.123 chances123
知道了结果,但还是不知道远程访问时-Oracle是如何处理,于是翻看了《OCP/OCA认证考试指南手册-oracle database 11g》,书中给了一张图,非常清楚地画出了oracle net的流程
oracle-net.jpg
从流程图来看-上次应该是Listener错啦。