sqlnet.ora作用

it_newbalance發表於2013-01-23

http://wenku.baidu.com/view/907ca10df12d2af90242e683.html ===(限制IP訪問)

sqlnet.ora

if not exists, use the default value, you can get the default value from $ORACLE_HOME/network/admin/sample/sqlnet.ora

  • 總結:
    1 .三個配置檔案都是放在$ORACLE_HOME\network\admin目錄下。
    2 .sqlnet.ora確定解析方式
    3 .listener.ora上設SID_NAME,通常用於JDBC訪問,對應的錯誤碼為12505
    4 .tnsnames.ora上設SERVICE_NAME,通常用於linux sqlplus客戶端,對應的錯誤碼為12514

  • sqlnet.ora

作用類似於linux或者其他unix的 nsswitch.conf檔案,

通過這個檔案來決定怎麼樣找一個連線中出現的連線字串(connect descriptor)
 
  假如sqlnet.ora 是下面這個樣子

NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
當客戶端輸入sqlplus sys/oracle@orcl時, 就會首先在 tnsnames.ora檔案中找orcl的記錄.如果沒有相應的記錄則嘗試把orcl當作一個主機名
括號中還有其他選項,如LDAP等,但HOSTNAME,LDAP通常並不常用,通常只設TNSNAME即可.

 
  • tnsnames.ora
1. 提供tnsname到主機名或者ip的對應
ORCL =
 (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) #對應的SOCKET資訊
 (CONNECT_DATA =
  (SERVER = DEDICATED) #使用專用伺服器模式去連線
 (SERVICE_NAME = orcl) #這裡填入對應 service_name,
可以通過"SQLPLUS>show parameter service_name;"檢視
  )
  
SALES =
 (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.188.219)(PORT = 1521))
   (CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = sales)
  )
 )
2. 配tnsname.ora裡面的service_name,可以用下面命令檢視:
SQL> show parameter service_name;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string orcl
3. tnsnames.ora是為oracle客戶端訪問資料庫而設的,不是為了遠端客戶端連線oracle 伺服器而設的
刪除tnsnames.ora
[oracle@oracle admin]$ rm tnsnames.ora
重啟oracle

本地客戶端無法訪問資料庫了
[oracle@oracle ~]$ sqlplus scott/scott@orcl

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Feb 16 17:32:41 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
在遠端(另一臺機器)
通過sqlplus方式連線oracle資料庫,沒問題
通過jdbc連線orcle資料庫,沒問題


listener.ora
listener程式接受遠端對資料庫的接入請求
Listener.ora
#SID_LIST_LISTENER 定義, 定義LISTENER程式監聽SID
  SID_LIST_LISTENER =
  (SID_LIST = #可以監聽多個SID,都存在一個SID表中

  (SID_DESC =
   (GLOBAL_DBNAME = boway) # GLOBAL_DBNAME不是必需的除非使用HOSTNAME做資料庫連線
  (ORACLE_HOME = E:\oracle\product\10.1.0\Db_2)
  (SID_NAME = orcl)
  )
  )
  
  #監聽器定義,一臺資料庫可以有不止一個監聽器
  LISTENER =
  (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = boway)(PORT = 1521))
  )
JDBC連線請求的URL 要對應Listener.ora 
jdbc:oracle:thin:@192.168.3.98:1521:orcl

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24558279/viewspace-753124/,如需轉載,請註明出處,否則將追究法律責任。

相關文章