程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 深入探討Oracle網絡服務解析

深入探討Oracle網絡服務解析

編輯:Oracle數據庫基礎

近來,浏覽BBS時,常看到“Oracle網絡服務解析”的疑問,針對以上這類問題,我歸納總結了5種常用的方法。具體如下:
1、Oracle Internet Directory
2、External Naming
3、主機命名
4、Oracle Easy Connect
5、本地命名

下面分別介紹這五種方法:
第一種:Oracle Internet Directory管理復雜的Oracle網絡服務器時有優勢,管理員可以在一個比較集中位置配置和管理Net Service Names
第二種:External Naming 使用非Oracle工具管理和解析Oracle網絡服務名稱
第三種:主機命名方法(客戶端為Windows xp,服務器端為Linux+Oracle 9i)

1、配置客戶端的sqlnet.ora

  1. # sqlnet.ora Network Configuration File: D:Oracleproduct10.2.0clIEnt_1NETWORKADMINsqlnet.ora  
  2. # Generated by Oracle configuration tools.  
  3. # This file is actually generated by netca. But if customers choose to   
  4. # install "Software Only", this file wont exist and without the native   
  5. # authentication, they will not be able to connect to the database on NT.  
  6. SQLNET.AUTHENTICATION_SERVICES= (NTS)  
  7. NAMES.DIRECTORY_PATH= (TNSNAMES, HOSTNAME)  
  8.  

2、配置服務器端的listener.ora

  1. [oracle@LinuxOracle admin]$ vi listener.ora  
  2. # LISTENER.ORA Network Configuration File: /u01/app/Oracle/product/9.2.0/network/admin/listener.ora  
  3. # Generated by Oracle configuration tools.  
  4. LISTENER =  
  5. (DESCRIPTION =  
  6. (ADDRESS = (PROTOCOL = TCP)(HOST = LinuxOracle)(PORT = 1521)) #注意HOST配置為主機名  
  7. )  
  8. SID_LIST_LISTENER =  
  9. (SID_LIST =  
  10. (SID_DESC =  
  11. (GLOBAL_DBNAME = LinuxOracle) #注意GLOBAL_DBNAME為主機名  
  12. (Oracle_HOME = /u01/app/Oracle/product/9.2.0)  
  13. (SID_NAME = dg1)  
  14. )  
  15. (SID_DESC =  
  16. (GLOBAL_DBNAME = LinuxOracle)  
  17. (Oracle_HOME = /u01/app/Oracle/product/9.2.0)  
  18. (SID_NAME = OEMREP)  
  19. )  
  20. )  
  21.  

說明:
如果沒有正確配置GLOBAL_DBNAME,sqlplus連接時,會報如下錯誤:

  1. C:Documents and Settings ew>sqlplus system/lijIE123@LinuxOracle  
  2. SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 9月 19 17:31:52 2007  
  3. Copyright (c) 1982, 2005, Oracle. All rights reserved.  
  4. ERROR:  
  5. ORA-12514: TNS: 監聽程序當前無法識別連接描述符中請求的服務  
  6.  

3、配置完後,sqlplus連接
Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.

  1. C:Documents and Settings ew>sqlplus system/lijIE123@LinuxOracle  
  2. SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 9月 19 17:19:48 2007  
  3. Copyright (c) 1982, 2005, Oracle. All rights reserved.  
  4. ERROR:  
  5. ORA-12154: TNS: 無法解析指定的連接標識符  
  6.  

報這樣的錯誤,說明sqlplus不能正確解析LinuxOracle,可能hosts或DNS的問題!!!
用記事本打開hosts
內容如下(省略了一部分):

  1. ..............................................................  
  2. # 102.54.94.97 rhino.acme.com # source server  
  3. # 38.25.63.10 x.acme.com # x clIEnt host  
  4. 127.0.0.1 localhost  
  5. 修該為:  
  6. ...............................................................  
  7. # 102.54.94.97 rhino.acme.com # source server  
  8. # 38.25.63.10 x.acme.com # x clIEnt host  
  9. 127.0.0.1 localhost  
  10. 192.168.1.61 LinuxOracle  

4、sqlplus連接Oracle服務器

  1. C:Documents and Settings ew>sqlplus system/lijIE123@LinuxOracle  
  2. SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 9月 19 18:37:51 2007  
  3. Copyright (c) 1982, 2005, Oracle. All rights reserved.  
  4.  

連接到:

  1. Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production  
  2. With the Partitioning, OLAP and Oracle Data Mining options  
  3. JServer Release 9.2.0.4.0 - Production  

SQL>
成功!!!

第四種:Oracle Easy Connect
只在Oracle 10g以上版本使用
Oracel Easy Connect Naming
使用Oracle easy connect naming必須滿足以下要求
1、Oracle net services 10g必須安裝在客戶端
2、客戶端及服務器端必須支持TCP/IP,並啟用
3、不允許高級連接描述符特性,如:連接池、外部過程調用
配置Oracle easy connect naming
在sqlnet.ora增加下面這行:

  1. NAMES.DIRECTORY_PATH=(EZCONNECT,TNSNAMES) #注意增加了EZCONNECT  

Oracle easy connect naming方法示例
eg:

  1. connect scott/tiger@hostname:port/servicesname  
  2. connect scott/tiger@//hostname/servicesname  

解釋:
語法構件 描述
// 任選:通過URL連接時使用
hostname 必選: 主機名或IP
port 任選:端口號
servicesname 必選:Oracle網絡服務的名稱

第五種:本地命名法
本地命名方法也被稱為tnsnames.ora方法
可用Oracle net manager配置本地命名方法(當然也可以用OEM)
打開Oracle net manager,在Local選項中選擇Service Naming進行添加,添加好的tnsnames.ora內容如下:

  1. eg:  
  2. TEST =  
  3. (DESCRIPTION =  
  4. (ADDRESS_LIST =  
  5. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.61)(PORT = 1521))  
  6. )  
  7. (CONNECT_DATA =  
  8. (SERVICE_NAME = dg1)  
  9. )  
  10. )  
  11. TEST為網絡服務名,SERVICE_NAME為Oracle的服務名 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved