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