一、 安裝配置oracle客戶端
要訪問(wèn)orcale數(shù)據(jù),必須在訪問(wèn)的客戶端機(jī)器上安裝oracle客戶端。
Orcale有兩種形式的客戶端:
l 完整的客戶端
包括訪問(wèn)服務(wù)器端數(shù)據(jù)庫(kù)的基本Oracle 的 Microsoft OLE DB 訪問(wèn)接口需要 Oracle Client Software Support File以及 SQL*Net 。還包括用于配置客戶端設(shè)置的工具、sqlplus、企業(yè)管理器等一系列的工具。
l 立即客戶端(instant client)
這個(gè)客戶端體積很小,但是只包括了訪問(wèn)orcale服務(wù)器的最基本的支撐驅(qū)動(dòng),沒(méi)有設(shè)置管理工具,也找不到可用的圖形界面。對(duì)客戶端的設(shè)置需要手工就行。以oracle 10g版本,以這個(gè)版本為例。
1、 下載oracle 10 的客戶端
可以到orcale官方網(wǎng)站下載,需要先注冊(cè),然后下載,如果的服務(wù)器是64位操作系統(tǒng),需要下載64位的客戶端。
下載適用于Microsoft Windows (32-bit)的Oracle Database 10g Client Release 2的客戶端,下載地址:http://download.oracle.com/otn/nt/oracle10g/10201/10201_client_win32.zip
下載適用于Microsoft Windows (64-bit)的Oracle Database 10g Client Release 2的客戶端,下載地址:http://download.oracle.com/otn/nt/oracle10g/10201/102010_win64_x64_client.zip
2、 安裝oracle 10 客戶端
下載好后,解壓,安裝。
安裝時(shí)有四個(gè)選項(xiàng):
l Instantclient,相當(dāng)于最小化安裝。
l 管理員,完整安裝。
l 運(yùn)行時(shí)
l 自定義
為了管理方便,一般以管理員方式安裝。
3、 配置oracle 10 客戶端
在客戶端主要需要配置兩個(gè)設(shè)置,命名方法和服務(wù)器別名,還有一個(gè)監(jiān)聽程序是服務(wù)端需要用的,用來(lái)監(jiān)聽客戶端的訪問(wèn),客戶端不必設(shè)置監(jiān)聽程序。
這些設(shè)置都能在net manager工具中進(jìn)行,在oracle程序組中的“配置和移植工具”中的“net manager”。如圖所示:
此主題相關(guān)圖片如下:netmanager_name.jpg
概要文件就是用來(lái)設(shè)置命名方法和驗(yàn)證方式的的
3.1. 命名方法
在窗口左面的上部下拉列表中選“命名”,左邊窗口顯示目前可用的方法,右邊是已經(jīng)選擇的命名方法,幾個(gè)主要的命名方法有:
l TNSNAMES表示采用TNSNAMES.ORA文件來(lái)解析
l ONAMES表示Oracle使用自己的名稱服務(wù)器(Oracle Name Server)來(lái)解析,目前Oracle建議使用輕量目錄訪問(wèn)協(xié)議LDAP來(lái)取代ONAMES
l HOSTNAME表示使用host文件,DNS,NIS等來(lái)解析
一般使用本地命名方式來(lái)解析服務(wù)器名,即使用TNSNAMES.ORA中設(shè)置的服務(wù)器名。TNSNAMES.ORA中的服務(wù)器名服務(wù)器別名中設(shè)置。
3.2. 驗(yàn)證方式
此主題相關(guān)圖片如下:netmanager_aut.jpg
在下拉列表中選擇“orcale高級(jí)安全性”,設(shè)置用戶連接Oracle服務(wù)器時(shí)使用哪種驗(yàn)證方式。在下面的左邊窗口顯示可用的驗(yàn)證方式,右邊是已選的驗(yàn)證方式,主要的驗(yàn)證方式有:
l NTS表示操作系統(tǒng)身份驗(yàn)證
l NONE,什么都不選表示Oracle數(shù)據(jù)庫(kù)身份驗(yàn)證
l KERBEROS5,使用kerberos 5 驗(yàn)證方式
這些驗(yàn)證方式可以同時(shí)采用,一般采用Oracle數(shù)據(jù)庫(kù)身份驗(yàn)證,即這里什么都不用設(shè)置即可,選了其他驗(yàn)證方式也不影響Oracle數(shù)據(jù)庫(kù)身份驗(yàn)證。3.3. 服務(wù)器別名
上面命名方法中選擇了TNSNAMES本地命名方法時(shí),在這里設(shè)置服務(wù)器的別名。
在左邊窗口選“服務(wù)命名”,就可以新增和編輯本地服務(wù)器別名。這里生成的服務(wù)器別名都反映在tnsnames.ora文件中。
本地服務(wù)器命名設(shè)置的服務(wù)器實(shí)際上設(shè)置了服務(wù)器的四個(gè)主要參數(shù):服務(wù)器主機(jī)名(可以是主機(jī)名也可以是主機(jī)ip)、服務(wù)器端口號(hào)(默認(rèn)1521)、訪問(wèn)協(xié)議、要訪問(wèn)服務(wù)器上數(shù)據(jù)庫(kù)服務(wù)名。
此主題相關(guān)圖片如下:netmanager_alias.jpg
這里的exchange是客戶端的服務(wù)器別名,客戶端訪問(wèn)服務(wù)端數(shù)據(jù)庫(kù)就要使用這個(gè)名稱。
服務(wù)名databaseName是服務(wù)端需要訪問(wèn)的那個(gè)數(shù)據(jù)庫(kù)的服務(wù)名。
下面就是這個(gè)服務(wù)端的ip、端口和協(xié)議(一般為TCP/IP).
設(shè)置服務(wù)器別名后,在tnsnames.ora文件中這樣反映出來(lái):
EXCHANGE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.6)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = c001_db)
)
)
二、 Sql server中新建指向orcacle的鏈接服務(wù)器
上面在客戶端設(shè)置了訪問(wèn)oracle服務(wù)器的必要設(shè)置,客戶端可以通過(guò)oracle的客戶端訪問(wèn)orcale服務(wù)端的數(shù)據(jù)庫(kù)了。
這里只討論使用sql server的鏈接服務(wù)器鏈接oracle服務(wù)器訪問(wèn)數(shù)據(jù)的情況。
設(shè)置如下:
l 在sql server中新建一個(gè)鏈接服務(wù)器,比如鏈接服務(wù)器名為:R2000
l 數(shù)據(jù)訪問(wèn)接口選擇:Microsoft OLE DB Provider for Oracle,如果沒(méi)有這個(gè)驅(qū)動(dòng)也可以選擇Oracle Provider for OLE DB。
l 產(chǎn)品名稱:Oracle
l 數(shù)據(jù)源:就是上面步驟中建立的服務(wù)器別名,代表要訪問(wèn)的oracle服務(wù)器上的要訪問(wèn)的那個(gè)數(shù)據(jù)庫(kù)。
l 在安全性中選“使用此安全上下文建立連接”,然后輸入訪問(wèn)oracle的用戶名和密碼。
Ok,其他的上面沒(méi)有提到的設(shè)置不需要設(shè)置。下面即可通過(guò)。
用命令行添加的方法:
1 Microsoft OLE DB Provider for Oracle驅(qū)動(dòng)
sp_addlinkedserver 'R2000','Oracle','MSDAORA','c001_db'
go
sp_addlinkedsrvlogin 'R2000', false, 'sa', 'username', 'password'
go
sp_addlinkedsrvlogin 'R2000', false, 'NT AUTHORITY\SYSTEM', 'username', 'password'
go
/*這個(gè)用戶需要根據(jù)Server SQL用戶來(lái)定,在安全性->登錄名中找*/
sp_addlinkedsrvlogin 'R2000', false, 'JMDB\Administrator', 'username', 'password'
go
2 Oracle Provider for OLE DB
sp_addlinkedserver 'R2000','Oracle','OraOLEDB.Oracle','c001_db'
go
sp_addlinkedsrvlogin 'R2000', false, 'sa', 'username', 'password'
go
sp_addlinkedsrvlogin 'R2000', false, 'NT AUTHORITY\SYSTEM', 'username', 'password'
go
/*這個(gè)用戶需要根據(jù)Server SQL用戶來(lái)定,在安全性->登錄名中找*/
sp_addlinkedsrvlogin 'R2000', false, 'JMDB\Administrator', 'username', 'password'
go
配置 訪問(wèn)接口:
有時(shí)在裝了Oracle后,驅(qū)動(dòng)有了,但實(shí)際相應(yīng)的訪問(wèn)接口沒(méi)有配置,這時(shí)還是不能訪問(wèn)。
在 SQL 對(duì)象資源管理器->服務(wù)器對(duì)象->鏈接服務(wù)器->訪問(wèn)接口中找到你所選用的接口,右鍵->屬性把允許進(jìn)程內(nèi)選上。
三、 在sql server中通過(guò)鏈接服務(wù)器訪問(wèn)orcale
由于orcale的服務(wù)名是直接指向到orcale服務(wù)器上的某一個(gè)數(shù)據(jù)庫(kù),所有通過(guò)鏈接服務(wù)器訪問(wèn)orcale的數(shù)據(jù)是這樣的形式(指定數(shù)據(jù)庫(kù)的位置不需要填):
服務(wù)器別名..所有者.數(shù)據(jù)庫(kù)對(duì)象
R2000..username.tablename
建議用OPENQUERY 進(jìn)行訪問(wèn),例:SELECT *
FROM OPENQUERY(R2000, 'SELECT * FROM username.tablename')
GO