原文链接:https://blog.csdn.net/qq_25252357/article/details/73369351
以前连接远程数据库以为客户端和服务器端都要配置Oracle监听器,现在研究了一下Oracle监听器,才了解不是这样的。
一、Oracle监听器(LISTENER)
Oracle监听器是做什么的呢?它设置在服务端,是基于服务端的一种网络服务,用于监听客户端向数据库端发出的连接
请求。判断一下连接请求是否正确,请求有效就连接,失败就拒绝。所以你要连接远程数据库,那么远程数据库就要配置
监听器,客户端则不需要配置。
下面是连接过程:
(1)首先服务器端的监听器要打开,不然都是白搞。
(2)用户在客户端(pl/sql等sql工具输入,下图是pl/sql登录界面)输入服务器端给你的用户名和密码及选择数据库的网络服务名(HEHEDA)。
(3)然后客户端会先查找tnsnames.ora,找到对应的网络服务名(HEHEDA)的配置,将网络服务名映射为包含服务器端给的Oracle服务地址(12.12.30.1)、服务器端给的端口号(1521)、服务器端给的全局数据库名的连接描述符(HEHEDA2)、服务器端给的用户名、服务器端给的密码。
HEHEDA=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 12.12.30.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME =HEHEDA2)
)
)
(4)客户端通过TCP/IP协议发送连接请求,被服务器端的监听器监听,根据全局数据库名的连接描述符(HEHEDA2)定位到相应的监听器,并通过网络
将连接信息传递给监听器。
(5)监听器通过配置文件listener.ora找到相应的数据库服务器,客户端和服务器开始通信。
明白原由下次遇到问题就比较有方向了
具体参考:http://blog.sina.com.cn/s/blog_5f30147a0100em2e.html