分类: Oracle
2015-05-21 01:08:54
1:以往的经验tnsping ora11g不通的情况下,查看是否开启访问控制,建议不要开启此项,非常不利于排错。
如果一定要开启,需要将相关实地址浮动地址等全部加进列表中。
2:这次的情况不同,tnsping ora11g是通的,而且访问控制也取消了,但是程序死活连不上数据库。之前程序和数据库都在本机,没有问题,当分离后,就报错了。而且反复查看了监听文件和字符串文件没有问题。
于是抓包,发现果然是被服务器拒绝了
这里的error_stack=(error=(code=12514)其实就是ora-12514
于是尝试在客户端手工#sqlplus vpdn/vpdn@ora11g连接服务器,发现果然连不上。
sqlplus vpdn/vpdn@ora11g
SQL*Plus: Release 11.2.0.1.0 Production on Thu May 21 00:15:22 2015
Copyright (c) 1982, 2009, Oracle. All rights reserved.
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
Descriptor
监听程序当前无法识别连接描述符中请求服务。
尝试了在其它平台客户端可以直接登录到服务器,于是查看其它平台服务器监听和字符串文件,发现监听文件有指定监听实例名。
select instance_name from v$instance --这样查询实例名。
顿时想到 ,问题应该就在这里了。
修改前:
db2:~/ora11g/network/admin> cat listener.ora.bak
stener.ora Network Configuration File: /opt/oracle/product/11gR1/db/network/admin/listener.ora
# Generated by Oracle configuration tools.
LOCAL_OS_AUTHENTICATION_LISTENER=OFF
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.207.17)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
修改后:
db2:~/ora11g/network/admin> cat listener.ora
# listener.ora Network Configuration File: /export/home/oracle/ora10g/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ora11g)
(ORACLE_HOME = /home/oracle/ora11g)
(SID_NAME = ora11g)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.207.17)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
黄色字体是增加的部分,修改完后,重启服务器监听程序,再连就OK了。