在一個基於TCP/IP協議的網絡環境中,oracle數據服務器在一台計算機上,客戶端在另外一台計算機上,客戶端要連接到oracle服務器我們經常會輸入:"C:/sqlplus scott/tiger@shanghai",這是oracle客戶端連接服務器時使用的連接命令,其中sqlplus是oracle客戶端程序,scott/tiger是登陸服務器的用戶名和密碼,@shanghai是本地網絡服務名,它代表了遠程數據庫服務器的信息,它的另外一種叫法叫做tns服務名稱。tns英文全稱是transparent network substrate,譯作透明網絡傳輸底層,它是內建於oracle客戶端的一個程序,它用於進行遠程連接並將@shanghai翻譯成有用的連接信息。一般來說客戶端都有一個名稱為tnsnames.ora的文件,這是一個文本文件在[oracle_home]/network/admin下面可以找到,內容如下:
SHANGHAI=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 205.220.98.96)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = Products)
)
)
連接oracle數據庫服務器時該程序加載該文件,並將對應的tns服務名稱轉換成連接信息連接數據庫。因此客戶端程序知道該如何連接到oracle數據庫了,它將打開1521端口到205.220.98.96連接的TCP/IP套接字,此時服務器端的監聽程序也在運行,監聽到客戶端的連接后就會接受在請求,並檢查連接信息是否正確及合法。連接正確則接受該請求,否則拒絕。
轉載:https://blog.csdn.net/lincolncaptain/article/details/5336232