一、引言
Oracle作為一款專業的數據庫軟件系統可以運行於多層次網絡結構,包括單機系統,C/S(客戶機/服務器)結構,B/S(浏覽器/服務器)結構等。在C/S結構下,要使客戶端應用程序能連接Oracle服務器,需要在客戶端計算機上安裝體積超過120MB的Oracle客戶端軟件,並進行復雜的配置才能實現。如果應用程序需要部署在多個客戶端上,那麼安裝Oracle客戶端和配置連接Oracle服務器的工作將變得非常繁瑣。
本文以9i為例介紹一種在不安裝Oracle客戶端的情況下,應用程序在客戶端連接Oracle服務器的方法。
二、具體實現
安裝在客戶端的應用程序要連接Oracle數據庫服務器,需要Oracle數據庫的驅動程序,接口文件和各類支持文件。這些文件必須和應用程序存放在相同的目錄下,如果單獨存放,
可以設置環境變量,使應用程序在相應目錄下找到這些文件。
1.應用程序所需文件
在安裝了Oracle客戶端的計算機上可以找到應用程序連接數據庫時所需的所有文件,文件共41個,12.9MB。這些文件必須嚴格按照以下目錄位置進行存放, Appdir是應用程序當前目錄。
Appdir目錄下共30個文件,這些文件是Oracle服務器所需的動態鏈接庫
oci.dll
Oracle.key
oraclIEnt9.dll
oracommon9.dll
ORACORE9.DLL
orageneric9.dll
oraldapclnt9.dll
oran9.dll
ORANCDS9.DLL
orancrypt9.dll
oranhost9.dll
oranl9.dll
oranldap9.dll
ORANLS9.DLL
oranms.dll
oranmsp.dll
orannzsbb9.dll
oranoname9.dll
oranro9.dll
orantns9.dll
ORAPLS9.DLL
ORASLAX9.DLL
ORASNLS9.DLL
ORASQL9.DLL
oratrace9.dll
ORAUNLS9.DLL
oravsn9.dll
orawtc9.dll
ORAXML9.DLL
ORAXSD9.DLL
Appdir\bin目錄下有一個文件
orantcp9.dll
Appdir\network\ADMIN目錄下只有一個文件,該文件是連接數據庫的配置文件
tnsnames.ora
Appdir\ocommon\nls\ADMIN\DATA目錄下有8個文件,這些文件是簡體中文語言環境的支持文件,其它語言運行環境所需文件會有不同
LX00001.NLB
LX00023.NLB
LX10001.NLB
LX10035.NLB
LX1BOOT.NLB
LX20001.NLB
LX20354.NLB
LX60354.NLB
Appdir\oracore\zoneinfo目錄下只有一個文件,用來存儲時區信息
timezone.dat
2.修改網絡配置文件
在Appdir\network\ADMIN目錄下的tnsnames.ora文件是重要的配置文件,在這個文件中存儲了連接Oracle數據庫服務器的參數——服務命名對應的連接子串。該文件可以用記事本進行編輯,以下是一個tnsnames.ora文件中的配置實例:
- APPDB =
- (DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
- )
- (CONNECT_DATA =
- (SERVICE_NAME = APPDB)
- )
- )
網絡配置文件各參數說明:
APPDB:本地命名的名稱,即Oracle數據庫的名字
PROTOCOL:使用的協議,本例使用TCP
HOST:服務器的地址
PORT:服務器的監聽端口號,默認使用1521
SERVICE_NAME: Oracle數據庫服務器的名稱
3.編輯Oracle.key文件
文件oracle.key指明了在注冊表中Oracle程序的存儲目錄,以及Oracle_HOME和其它的環境變量等信息,該文件內容很少,只記錄了簡單的目錄項,用記事本便可打開對其進行編輯,通常情況下的設置為:
software\appdir
Oracle連接數據庫時會到注冊表的HKEY_LOCAL_MacHINE\SOFTWARE\APPDIR的對應項中查找數據庫的相關信息。
4.注冊數據庫信息
完成以上工作後,只需在注冊表中寫入Oracle數據庫的語言環境和資源路徑,應用程序便可以連接Oracle數據庫,無需設置操作系統的環境變量,注冊表信息的保存位置應與
Oracle.key文件中設定的項值對應,注冊表的清單如下:
[HKEY_LOCAL_MacHINE\SOFTWARE\APPDIR]
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
"Oracle_HOME"="C:\\Program Files\\appdir"
SIMPLIFIED CHINESE_CHINA.ZHS16GBK表示使用簡體中文字符集。應用程序和連接Oracle數據庫所需的文件存放在C:\Program Files\appdir目錄下,即應用程序的安裝目錄。
三、總結
為了解決客戶端應用程序在不安裝Oracle客戶端的情況下,方便地連接數據庫,Oracle在其最新版本的數據庫系統中推出了一款免費的工具Instant ClIEnt,利用該工具中提供的若干個文件,客戶端應用程序既不需要修改注冊表,也不需要設置環境變量,便可以連接Oracle數據庫服務器,使得應用程序的發行和部署更加簡單,不過Instant ClIEnt提供的核心文件體積超過了90MB。本文所敘述的方法文件小巧、實現方便,也具有很好的實用價值。