SQL Server 鏈接 Oracle 數(shù)據(jù)庫(kù)實(shí)戰(zhàn)
概述
在某些情況下,我們希望從外部數(shù)據(jù)庫(kù)中獲取數(shù)據(jù),而無(wú)需在應(yīng)用程序中進(jìn)行額外編碼,只需編寫一個(gè) T-SQL 查詢即可為我們完成所有工作。這就是微軟提供的“鏈接服務(wù)器”功能的原因。
但默認(rèn)情況下,鏈接服務(wù)器無(wú)法連接到 Oracle 數(shù)據(jù)庫(kù)。本文中我們將展示如何安裝必需的庫(kù)和工具,然后我們將配置 Oracle 數(shù)據(jù)庫(kù)(稱為 Oracle Net)的網(wǎng)絡(luò)層,以最終能夠創(chuàng)建鏈接服務(wù)器并查詢目標(biāo)數(shù)據(jù)庫(kù)實(shí)例。
Oracle 數(shù)據(jù)庫(kù)客戶端的安裝
首先,停止 SQL Server 實(shí)例。如果實(shí)例正在運(yùn)行,安裝不會(huì)失敗,但是在第一次調(diào)用 Linked Server Provider 時(shí),實(shí)例會(huì)掛起并且不會(huì)響應(yīng)!本文中我想連接一個(gè) Oracle Database 11g 實(shí)例。所以我將安裝一個(gè) Oracle Database 11g 客戶端,但您也可以嘗試安裝最新版本。源文件可以在Oracle 的網(wǎng)站上下載。它采用 ZIP 文件的形式。下載解壓縮并打開(kāi)解壓縮的文件夾。
完成后,只需點(diǎn)擊 ? setup.exe ?。
這將打開(kāi)以下對(duì)話框。選擇?自定義?。
選擇您使用的適當(dāng)語(yǔ)言。
然后選擇安裝的目標(biāo)文件夾。我個(gè)人更喜歡將其與操作系統(tǒng)分區(qū)分開(kāi),并且我遵循 Oracle 中的常規(guī)路徑。
現(xiàn)在讓我們選擇適當(dāng)?shù)慕M件。
- 數(shù)據(jù)庫(kù)實(shí)用程序、SQL*Plus 和 Oracle 調(diào)用接口是在出于任何原因添加外部開(kāi)發(fā)的情況下選擇的。它們可能沒(méi)有用。
- Oracle Net是 Oracle 數(shù)據(jù)庫(kù)的網(wǎng)絡(luò)層。這將允許我們?cè)诿麨?tnsnames.ora 的文件中配置“路由”
- 選擇了Oracle ODBC Driver、Oracle Provider for OLE DB 和 Oracle Provider for .NET,以允許 SQL Server 通過(guò)不同的方式聯(lián)系 Oracle 數(shù)據(jù)庫(kù)。
通過(guò)單擊“下一步”按鈕,您將看到以下界面:
單擊“結(jié)束”并開(kāi)始安裝……
我們完成了。
讓我們連接到 SQL Server 實(shí)例并檢查它是否看到新安裝的提供程序:
配置 Oracle Net(添加對(duì)目標(biāo) Oracle 實(shí)例的引用)
- 配置文件的位置
由于我們?cè)?I:\app\oracle 中安裝了 Oracle 軟件,因此網(wǎng)絡(luò)配置文件將位于 I:\app\oracle\product\11.2.0\client_1\network\admin 中。
- 編輯 Oracle Net (sqlnet.ora) 的配置
我們將使用它來(lái)首先確定名稱解析方法的優(yōu)先級(jí),定義默認(rèn)域和時(shí)間間隔以驗(yàn)證連接是否仍處于活動(dòng)狀態(tài)。
為此,請(qǐng)?jiān)?sqlnet.ora 文件中添加以下行。
重要的提示
定義 NAMES.DEFAULT_DOMAIN 時(shí),您將始終必須使用完全限定的 TNS 名稱。如果您對(duì)使用不感興趣,可以將其刪除
- 編輯名稱解析中使用的本地列表 (tnsnames.ora)
在配置中另一個(gè)非常重要的文件是 tnsnames.ora 文件。此 tnsnames.ora 文件是一個(gè)配置文件,其中包含映射到本地命名方法的連接描述符的網(wǎng)絡(luò)服務(wù)名稱,或映射到偵聽(tīng)器協(xié)議地址的網(wǎng)絡(luò)服務(wù)名稱。
以下是用于創(chuàng)建鏈接服務(wù)器的內(nèi)容示例。
- 測(cè)試命名解析
打開(kāi) cmd.exe 并運(yùn)行以下命令:
您將收到類似于以下內(nèi)容的文本:
創(chuàng)建到 Oracle 數(shù)據(jù)庫(kù)實(shí)例的鏈接服務(wù)器
- 使用 SSMS
創(chuàng)建鏈接服務(wù)器最方便的方法肯定是通過(guò) SQL Server Management Studio。為此,請(qǐng)連接到 SQL Server 實(shí)例并找到 ? Server Objects ?,單擊一下,您將找到 ? Linked Servers ?。如果您右鍵單擊它,您將能夠創(chuàng)建一個(gè)新的鏈接服務(wù)器。
如下提供連接信息。作為數(shù)據(jù)源,您將使用 tnsnames.ora 文件中使用的名稱(帶或不帶域名)。
在配置的安全部分,根據(jù)您的環(huán)境配置,您將選擇適當(dāng)?shù)姆椒ㄓ糜谶h(yuǎn)程身份驗(yàn)證。
您還可以查看鏈接服務(wù)器設(shè)置以根據(jù)您的環(huán)境進(jìn)行調(diào)整。
單擊“確定”后,將創(chuàng)建鏈接服務(wù)器并將其添加到“鏈接服務(wù)器”列表中,如下所示。
我們可以測(cè)試鏈接服務(wù)器。為此,請(qǐng)右鍵單擊它并選擇?測(cè)試連接?。
如果一切都配置好,您將看到以下對(duì)話框:
您還可以通過(guò)查看樹(shù)視圖查詢的表和視圖:
最后,您可以運(yùn)行以下查詢:
小結(jié)
本文首先介紹了ORACLE客戶端的安裝過(guò)程,然后介紹了配置 Oracle 數(shù)據(jù)庫(kù)(稱為 Oracle Net)的網(wǎng)絡(luò)層的方法,最后介紹了鏈接服務(wù)器的測(cè)試及查詢目標(biāo)數(shù)據(jù)庫(kù)實(shí)例的方法。