什么是監聽器(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。