程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> ORACLE客戶端連服務器的注意事項

ORACLE客戶端連服務器的注意事項

編輯:關於Oracle數據庫

  1. 通過SQL*NET協議,ORACLE客戶端連服務器時一般需要配置sqlnet.ora和tnsnames.ora。

  它們默認的目錄在$ORACLE_HOME/network/admin 目錄下
  
  也可以設置環境變量TNS_ADMIN指向你想用的sqlnet.ora和tnsnames.ora目錄

  例如:

  TNS_ADMIN=/home/oracle/config/9.0.1;export TNS_ADMIN
  
  sqlnet.ora文件決定找數據庫服務器別名的方式
  
  默認的參數有

  NAMES.DEFAULT_DOMAIN = WORLD
  NAMES.DIRECTORY_PATH = (TNSNAMES, ONAMES, HOSTNAME)
  
  如果你的ORACLE客戶端和服務器默認的域名不一樣,需要用#號注釋第一行#NAMES.DEFAULT_DOMAIN = WORLD使它不起作用。

  NAMES.DIRECTORY_PATH指定找服務器別名的順序 (本地的tnsnames.ora文件, 命名服務器, 主機名方式)
  
  服務器的sqlnet.ora裡可以設置檢查客戶端是否alive的時間間隔sqlnet.expire_time = 10
  
  tnsnames.ora文件裡寫數據庫服務器別名的詳細內容,有以下幾種寫法:

  # 一般的寫法  
  APPDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.35)(PORT = 1521))
    )
    (CONNECT_DATA =
     (SERVICE_NAME = appdb)
    )
  )

  # 明確標明用dedicated方式連接數據庫
  APPD=
  (DESCRIPTION=
  (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.35)(PORT=1521))
  (CONNECT_DATA=
    (SERVICE_NAME=appdb)
    (SERVER=DEDICATED)))
  
  # 對多個listener端口做均衡負載方式連接數據庫
  APPS =
  (DESCRIPTION =
  (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.35)(PORT = 1521))
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.35)(PORT = 1856))
   )
    (CONNECT_DATA =
     (SERVICE_NAME = appdb)
    )
  )  
      
    # 注意:如果數據庫服務器用MTS,客戶端程序需要用database link時最好明確指明客戶端用dedicated直連方式,不然會遇到很多跟分布式環境有關的ORACLE BUG。一般情況下數據庫服務器用直接的連接會好一些,除非你的實時數據庫連接數接近1000。
  
    2. /etc/hosts (UNIX)

  或者windowshosts(WIN98)  winntsystem32driversetchosts (WIN2000)客戶端需要寫入數據庫服務器IP地址和主機名的對應關系。
  
  127.0.0.1     localhost
  192.168.0.35   oracledb oracledb
  192.168.0.45   tomcat tomcat
  202.84.10.193  bj_db  bj_db  
  
  有些時候我們配置好第一步後,tnsping 數據庫服務器別名顯示是成功的,但是sqlplus username/password@servicename不通,jdbc thin link 也不通的時候,一定不要忘了在客戶端做這一步,原因可能是DNS服務器裡沒有設置這個服務器IP地址和主機名的對應關系。
  
  如果同時有私有IP和Internet上公有IP,私有IP寫在前面,公有IP寫在後面。
  
  編輯前最好留一個備份,增加一行時也最好用復制粘貼,避免編輯hosts時空格或者tab字符錯誤。
  
  3. UNIX下ORACLE多數據庫的環境,OS客戶端需要配置下面兩個環境變量
     
  ORACLE_SID=appdb;export ORACLE_SID
  TWO_TASK=appdb;export TWO_TASK 
  
  來指定默認的目標數據庫。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved