在Oracle的網路結構中解決連線問題(轉)
在Oracle的網路結構中解決連線問題(轉)[@more@]最近看到好多人說到tns或者資料庫不能登入等問題,就索性總結了下面的文件。
首先來說Oracle的網路結構,往復雜處說能加上加密、LDAP等等。。這裡不做討論,重點放在基本的網路結構也就是我們最常用的這種情況
三個配置檔案listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOME etworkadmin目錄下。
重點:三個檔案的作用和使用
sqlnet.ora-----作用類似於linux或者其他unix的nsswitch.conf檔案,透過這個檔案來決定怎麼樣找一個連線中出現的連線字串,
例如我們客戶端輸入
sqlplus sys/oracle@orcl
假如我的sqlnet.ora是下面這個樣子
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
那麼,客戶端就會首先在tnsnames.ora檔案中找orcl的記錄.如果沒有相應的記錄則嘗試把orcl當作一個主機名,透過網路的途徑去解析它的ip地址然後去連線這個ip上GLOBAL_DBNAME=orcl這個例項,當然我這裡orcl並不是一個主機名
如果我是這個樣子
NAMES.DIRECTORY_PATH= (TNSNAMES)
那麼客戶端就只會從tnsnames.ora查詢orcl的記錄
括號中還有其他選項,如LDAP等並不常用。
#------------------------
Tnsnames.ora------這個檔案類似於unix 的hosts檔案,提供的tnsname到主機名或者ip的對應,只有當sqlnet.ora中類似
NAMES.DIRECTORY_PATH= (TNSNAMES) 這樣,也就是客戶端解析連線字串的順序中有TNSNAMES是,才會嘗試使用這個檔案。
例子中有兩個,ORCL 對應的本機,SALES對應的另外一個IP地址,裡邊還定義了使用主用伺服器還是共享伺服器模式進行連線,一句一句說
#你所要連線的時候輸入得TNSNAME
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
#下面是這個TNSNAME對應的主機,埠,協議
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
#使用專用伺服器模式去連線需要跟伺服器的模式匹配,如果沒有就根據伺服器的模式
#自動調節
(SERVER = DEDICATED)
#對應service_name,
SQLPLUS>show parameter service_name;
#進行檢視
(SERVICE_NAME = orcl)
)
)
#下面這個類似
SALES =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.188.219)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = sales)
)
)
#----------------------
客戶端完了我們來看伺服器端
listener.ora------listener監聽器程式的配置檔案
關於listener程式就不多說了,接受遠端對資料庫的接入申請並轉交給oracle的伺服器程式。所以如果不是使用的遠端的連線,listener程式就不是必需的,同樣的如果關閉listener程式並不會影響已經存在的資料庫連線。
Listener.ora檔案的例子
#listener.ora Network Configuration File: #E:oracleproduct10.1.0Db_2NETWORKADMINlistener.ora
# Generated by Oracle configuration tools.
#下面定義LISTENER程式為哪個例項提供服務
#這裡是ORCL,並且它對應的ORACLE_HOME和GLOBAL_DBNAME
#其中GLOBAL_DBNAME不是必需的除非使用HOSTNAME做資料庫連線
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = boway)
(ORACLE_HOME = E:oracleproduct10.1.0Db_2)
(SID_NAME = ORCL)
)
)
#監聽器的名字,一臺資料庫可以有不止一個監聽器
#再向下面是監聽器監聽的協議,ip,埠等,這裡使用的tcp1521埠,並且使#用的是主機名
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = boway)(PORT = 1521))
)
首先來說Oracle的網路結構,往復雜處說能加上加密、LDAP等等。。這裡不做討論,重點放在基本的網路結構也就是我們最常用的這種情況
三個配置檔案listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOME etworkadmin目錄下。
重點:三個檔案的作用和使用
sqlnet.ora-----作用類似於linux或者其他unix的nsswitch.conf檔案,透過這個檔案來決定怎麼樣找一個連線中出現的連線字串,
例如我們客戶端輸入
sqlplus sys/oracle@orcl
假如我的sqlnet.ora是下面這個樣子
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
那麼,客戶端就會首先在tnsnames.ora檔案中找orcl的記錄.如果沒有相應的記錄則嘗試把orcl當作一個主機名,透過網路的途徑去解析它的ip地址然後去連線這個ip上GLOBAL_DBNAME=orcl這個例項,當然我這裡orcl並不是一個主機名
如果我是這個樣子
NAMES.DIRECTORY_PATH= (TNSNAMES)
那麼客戶端就只會從tnsnames.ora查詢orcl的記錄
括號中還有其他選項,如LDAP等並不常用。
#------------------------
Tnsnames.ora------這個檔案類似於unix 的hosts檔案,提供的tnsname到主機名或者ip的對應,只有當sqlnet.ora中類似
NAMES.DIRECTORY_PATH= (TNSNAMES) 這樣,也就是客戶端解析連線字串的順序中有TNSNAMES是,才會嘗試使用這個檔案。
例子中有兩個,ORCL 對應的本機,SALES對應的另外一個IP地址,裡邊還定義了使用主用伺服器還是共享伺服器模式進行連線,一句一句說
#你所要連線的時候輸入得TNSNAME
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
#下面是這個TNSNAME對應的主機,埠,協議
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
#使用專用伺服器模式去連線需要跟伺服器的模式匹配,如果沒有就根據伺服器的模式
#自動調節
(SERVER = DEDICATED)
#對應service_name,
SQLPLUS>show parameter service_name;
#進行檢視
(SERVICE_NAME = orcl)
)
)
#下面這個類似
SALES =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.188.219)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = sales)
)
)
#----------------------
客戶端完了我們來看伺服器端
listener.ora------listener監聽器程式的配置檔案
關於listener程式就不多說了,接受遠端對資料庫的接入申請並轉交給oracle的伺服器程式。所以如果不是使用的遠端的連線,listener程式就不是必需的,同樣的如果關閉listener程式並不會影響已經存在的資料庫連線。
Listener.ora檔案的例子
#listener.ora Network Configuration File: #E:oracleproduct10.1.0Db_2NETWORKADMINlistener.ora
# Generated by Oracle configuration tools.
#下面定義LISTENER程式為哪個例項提供服務
#這裡是ORCL,並且它對應的ORACLE_HOME和GLOBAL_DBNAME
#其中GLOBAL_DBNAME不是必需的除非使用HOSTNAME做資料庫連線
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = boway)
(ORACLE_HOME = E:oracleproduct10.1.0Db_2)
(SID_NAME = ORCL)
)
)
#監聽器的名字,一臺資料庫可以有不止一個監聽器
#再向下面是監聽器監聽的協議,ip,埠等,這裡使用的tcp1521埠,並且使#用的是主機名
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = boway)(PORT = 1521))
)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-961877/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在Oracle網路結構中解決連線問題Oracle
- 理解oracle的網路結構 解決你的連線問題Oracle
- 解決oracle網路連線問題Oracle
- VMware中解決ubuntu不能連線網路問題。(親測有效)Ubuntu
- 解決用PLSQL Developer連線VMWare中的Oracle 11g問題SQLDeveloperOracle
- 解決Pixel、Lineage等原始系統中的WIFI網路連線受限問題WiFi
- 解決django中超連結頁面不跳轉的問題Django
- 使用 Charles 簡單解決微信開發者工具網路連線失敗的問題
- ORACLE RAC中連線ScanIP報錯ORA-12545的問題解決Oracle
- 網路問題:Tuxedo不能自動連線Oracle資料UXOracle
- telnet、ftp連線速度慢的問題的解決(轉)FTP
- GE研發路燈網路連線技術 智慧路燈或可解決擁堵問題
- 解決代理連線超時問題
- 轉 監聽器連線常見的問題及其解決方法
- Ubuntu20.04.1LTS解決NAT方式連線網路後換源更新及本地SSH連線的問題Ubuntu
- 無線網路連線不上的問題彙總
- 關於紅旗linux網路連線時斷時連的問題(轉)Linux
- 解決mysql不能遠端連線的問題MySql
- 管理連線系統中 Web 服務的體系結構問題Web
- Oracle 解決like中無法匹配下劃線的問題Oracle
- 解決Macbook網路連線成功但是圖示一直顯示正在查詢網路問題Mac
- 四招解決無線網路訊號太弱問題
- JDBC連線ORACLE問題JDBCOracle
- 解決Oracle 11gR2 空閒連線過多,導致連線數滿的問題Oracle
- 代理伺服器的連線問題及解決伺服器
- 連線oracle中出現的問題Oracle
- 深入探索MS SQL Server 2000網路連線的安全問題 (轉)SQLServer
- 解決線上Oracle連線耗時過長的問題現象RPYBOracle
- Mac出現WiFi連線問題怎麼辦 Mac WiFi連線問題解決方法MacWiFi
- 解決不能透過mysql.sock連線MySQL問題的辦法(轉)MySql
- 解決oracle中not like效率問題Oracle
- 徹底解決VC6在編譯,連結時的假死問題編譯
- 無線網路連線不上的原因與解決辦法
- 關於在頁面中解決列印的幾個問題 (轉)
- 解決git下載時斷開連線的問題Git
- 解決Xmanager連線HPUX顯示亂碼的問題UX
- 解決字串連線設定間隔符的問題字串
- Win8.1連不上無線網路的解決