什么是监听器(LISTENER)?
监听器是oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。oracle客户端与服务器端的连接是通过客户端发出的连接请求,由服务器端监听器对客户端请求进行合法检查,如果连接请求有效,则进行连接,否则拒绝该连接。
监听器配置文件listener.ora。
什么是网络服务名(Tnsname)?
网络服务名也称为“连接标识符”,即为该远程连接配置命名。它代表了整个连接描述,包括通信协议,主机名,端口号,服务器名称,在连接的时候只需要@网络服务名 即可连接到指定的数据库。例如在cmd或者终端输入“sqlplus 用户名/口令@网络服务名”(如 “sqlplus system/manager@orcl”),就能顺利访问指定的数据库服务器。
网络服务名是基于oracle客户端的网络配置,如果客户端需要连接数据库服务器进行操作,则需要配置该客户端,所以该客户端可以是任意一台欲连接数据库服务器进行操作的PC机,也可以是数据库服务器自身。
网络服务名配置文件tnsnames.ora。
本地访问本地数据库服务器
本地访问本地数据库服务器,也需要在本地同时配置监听和网络服务名。
标准监听配置listener.ora示例:
# listener.ora Network Configuration File: D:\APP_oracle12c\product\12.1.0\dbhome_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = AML)
(ORACLE_HOME = D:\APP_oracle12c\product\12.1.0\dbhome_1)
(SID_NAME = AML)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
ADR_BASE_LISTENER = D:\APP_oracle12c\product\12.1.0\dbhome_1\log
标准监听配置tnsnames.ora示例:
# tnsnames.ora Network Configuration File: D:\app\ty\product\12.1.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
本地远程连接oracle数据库服务器
本地远程连接oracle数据库服务器,需要在数据库服务器端(监听配置)和客户端(网络服务名配置)分别进行配置。两个配置文件和本地访问本地数据库相同,只是HOST=localhost 改为 HOST=数据库服务器端的IP。