文章詳情頁
ORACLE客戶端連服務器的注意事項
瀏覽:5日期:2023-11-19 19:35:16
;;;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.193bj_dbbj_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; 來指定默認的目標數據庫。
排行榜
