時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
目標:
描述主機命名與本地服務名稱解析之間的區(qū)別
使用 Oracle Net Configuration Assistant 配置:
主機命名方法
本地命名方法
網(wǎng)絡服務名
排除簡單連接出現(xiàn)的故障
要點:
1.命名方法概覽
客戶機應用程序在試圖連接數(shù)據(jù)庫服務時,需要借助命名方法將連接標識符解析為連接描述符。
Oracle Net 提供了五種命名方法:
主機命名(Host Naming):使 TCP/IP 環(huán)境中的用戶能夠通過其現(xiàn)有名稱解析服務來解析名稱
本地命名:使用在每個客戶機的 tnsnames.ora 文件中配置和存儲的信息查找網(wǎng)絡地址
目錄命名:將數(shù)據(jù)庫服務或網(wǎng)絡服務名解析為連接描述符,該描述符存儲在中央目錄服務器中
Oracle Names:這是由 Oracle Names 服務器系統(tǒng)構成的 Oracle 目錄服務,這些服務器可以為網(wǎng)絡上的每個服務提供由名稱到地址的解析
外部命名:使用受支持的第三方命名服務
對于只有幾個數(shù)據(jù)庫的小型組織來說,應使用主機命名將名稱存儲在現(xiàn)有名稱解析服務中,也可使用本地命名將名稱存儲在客戶機上的 tnsnames.ora 文件中。
對于有多個數(shù)據(jù)庫的大型組織來說,應使用目錄命名將名稱存儲在集中管理的符合 LDAP 的目錄服務器中。
2.主機命名
在下列情況下,客戶機可使用主機名來連接服務器:
使用 Oracle Net Services Client 軟件連接 Oracle 數(shù)據(jù)庫服務
使用 TCP/IP 協(xié)議建立客戶機與服務器的連接
主機名通過 DNS 或本地的 /etc/hosts 文件等 IP 地址轉換機制來解析
不使用 "連接管理器" (Connection Manager) 或安全選項等高級功能
主機命名方法具有下列優(yōu)點:
需要的用戶配置最少。用戶只需提供主機名即可建立連接。
無需創(chuàng)建與維護本地名稱配置文件 (tnsnames.ora)。
無需了解 Oracle Names 或 Oracle Internet Directory 管理過程。
主機命名在每個節(jié)點上只能標識一個 SID,而使用其它命名方法還可標識其它 SID。
如果在主機 (hosts) 文件中對多個全局名稱設置了別名,讓它們指向同一 IP 地址,這樣即使這些數(shù)據(jù)庫位于同一節(jié)點上,也可使用主機命名連接任意數(shù)據(jù)庫。
客戶端要求
如果使用主機命名方法,則必須在客戶機上安裝 TCP/IP 協(xié)議。此外,還必須安裝 Oracle Net Services 和 TCP/IP 協(xié)議適配器。
主機名通過域名服務 (Domain Name Services, DNS)、網(wǎng)絡信息服務 (Network Information Services, NIS) 或集中維護的 TCP/IP 主機文件等 IP 地址轉換機制來解析。
使用主機命名方法之前,必須先對客戶端進行如上配置。
服務器端要求
如果使用主機命名方法,除了客戶機,還必須在服務器上也安裝 TCP/IP 協(xié)議。此外,需要在服務器端安裝 Oracle Net Services 和 TCP/IP 協(xié)議適配器。
在 Oracle8i 和 Oracle9i 中,只要滿足以下條件之一就可向監(jiān)聽程序自動注冊有關數(shù)據(jù)庫的信息(包括全局數(shù)據(jù)庫名稱):
在端口 1521 上使用 TCP/IP 運行的名為 LISTENER 的缺省監(jiān)聽程序正在運行
已在初始化文件中設置了 LOCAL_LISTENER 參數(shù)
早期版本中是通過listener.ora文件向監(jiān)聽程序注冊數(shù)據(jù)庫信息的。必須靜態(tài)配置SID_LIST_listener_name段以包含GLOBAL_DBNAME參數(shù)。
全局數(shù)據(jù)庫名稱由數(shù)據(jù)庫名稱和數(shù)據(jù)庫域名構成??梢詮某跏蓟瘏?shù)文件中的SERVICE_NAMES參數(shù)或DB_NAME和DB_DOMAIN參數(shù)來獲取 GLOBAL_DBNAME 的值。
主機名必須與在客戶機中指定的連接字符串匹配。其它信息還包括要連接的數(shù)據(jù)庫的信息。
說明:
主機命名在客戶端使用sqlnet.ora文件,在服務器端使用listener.ora文件。
sqlnet.ora中的NAMES.DIRECTORY_PATH參數(shù)確定的是連接時搜尋先后順序。例如,NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME),
則先從本地TNSNAMES文件中去找連接時提供的描述符,如果沒有發(fā)現(xiàn)匹配的,則再去oracle name server上找,
再沒有則使用主機命名方法進行連接——將連接描述符(假定為test)當作一個主機去連接,去該主機上尋找GLOBAL_DBNAME=test的實例(實例名可能不是test)進行連接。
3.本地命名
本地命名的優(yōu)點:
提供了一種相對簡單明了的解析服務名地址的方法。
對于使用不同協(xié)議的各個網(wǎng)絡,可跨網(wǎng)絡解析服務名。
可使用圖形配置工具輕松配置。
本地命名方法要求網(wǎng)絡服務名存儲在 tnsnames.ora 文件中。
本地命名在客戶端使用tnsnames.ora和sqlnet.ora文件,在服務器端使用listener.ora文件。
在圖形化界面中配置網(wǎng)絡服務名:
service name為該數(shù)據(jù)庫服務的service name,一般為db_name.db_domain
net服務名為按該服務在本地的標識符,相當于別名。
4.故障排除
ORA-12154:"TNS:無法解析服務名"
原因:Oracle Net Services 找不到在 tnsnames.ora 配置文件中指定的連接描述符。
操作:
檢查 tnsnames.ora 文件是否存在以及是否可訪問。
檢查 tnsnames.ora 文件是否位于 TNS_ADMIN 環(huán)境變量指定的位置中。
在 tnsnames.ora 文件中,核實在連接字符串中指定的服務名已經(jīng)映射為tnsnames.ora文件中的連接描述符。還要核實文件中沒有語法錯誤。
確認不存在 sqlnet.ora 文件的重復副本。
如果正從登錄對話框連接,則應核實連接服務名前沒有 at 符號 (@)。
ORA-12198:"TNS:找不到指向目標的路徑"和ORA-12203:"TNS:無法連接目標"
原因:客戶機找不到所需數(shù)據(jù)庫。
操作:
核實已正確輸入要連接的數(shù)據(jù)庫的服務名。
核實 TNSNAMES.ORA 文件的連接描述符中的服務名 ADDRESS 參數(shù)是正確的。
核實 TNSNAMES.ORA 文件已存儲在 TNS_ADMIN 環(huán)境變量定義的目錄中。
核實遠程節(jié)點上的監(jiān)聽程序已經(jīng)啟動并正在運行。如果未啟動,可使用 "監(jiān)聽程序控制實用程序"啟動監(jiān)聽程序。
如果正從登錄對話框連接,則應核實連接服務名前沒有 at 符號 (@)。
ORA-12533:"TNS:ADDRESS 參數(shù)非法"
原因:tnsnames.ora 文件內指定的連接描述符的 ADDRESS 段中的協(xié)議特定參數(shù)不正確。
操作:
有關針對不同協(xié)議的關鍵字的詳細信息,請參考適用于平臺的 Oracle 操作系統(tǒng)文檔。
ORA-12541:TNS:沒有監(jiān)聽程序
原因:無法與遠程節(jié)點上的監(jiān)聽程序取得聯(lián)系。
操作:
核實遠程節(jié)點上的監(jiān)聽程序已經(jīng)啟動。可使用 "監(jiān)聽程序控制實用程序" 的 STATUS 命令檢查監(jiān)聽程序的狀態(tài)。如果需要,還可使用 START 命令啟動該監(jiān)聽程序。
關鍵詞標簽:Oracle
相關閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實例的控制文件 為UNIX服務器設置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法