概述
在某些情況下,我們希望從外部資料庫中擷取資料,而無需在應用程式中進行額外編碼,隻需編寫一個 T-SQL 查詢即可為我們完成所有工作。這就是微軟提供的“連結伺服器”功能的原因。
但預設情況下,連結伺服器無法連接配接到 Oracle 資料庫。本文中我們将展示如何安裝必需的庫和工具,然後我們将配置 Oracle 資料庫(稱為 Oracle Net)的網絡層,以最終能夠建立連結伺服器并查詢目标資料庫執行個體。
Oracle 資料庫用戶端的安裝
首先,停止 SQL Server 執行個體。如果執行個體正在運作,安裝不會失敗,但是在第一次調用 Linked Server Provider 時,執行個體會挂起并且不會響應!本文中我想連接配接一個 Oracle Database 11g 執行個體。是以我将安裝一個 Oracle Database 11g 用戶端,但您也可以嘗試安裝最新版本。源檔案可以在Oracle 的網站上下載下傳。它采用 ZIP 檔案的形式。下載下傳解壓縮并打開解壓縮的檔案夾。
完成後,隻需點選 « setup.exe »
這将打開以下對話框。選擇«自定義»
選擇您使用的适當語言。
然後選擇安裝的目标檔案夾。我個人更喜歡将其與作業系統分區分開,并且我遵循 Oracle 中的正常路徑。
現在讓我們選擇适當的元件。
[
- 資料庫實用程式、SQL*Plus 和 Oracle 調用接口是在出于任何原因添加外部開發的情況下選擇的。它們可能沒有用。
- Oracle Net是 Oracle 資料庫的網絡層。這将允許我們在名為 tnsnames.ora 的檔案中配置“路由”
- 選擇了Oracle ODBC Driver、Oracle Provider for OLE DB 和 Oracle Provider for .NET,以允許 SQL Server 通過不同的方式聯系 Oracle 資料庫。
通過單擊“下一步”按鈕,您将看到以下界面:
[
單擊“結束”并開始安裝……
我們完成了。
讓我們連接配接到 SQL Server 執行個體并檢查它是否看到新安裝的提供程式:
配置 Oracle Net(添加對目标 Oracle 執行個體的引用)
- 配置檔案的位置
由于我們在 I:\app\oracle 中安裝了 Oracle 軟體,是以網絡配置檔案将位于 I:\app\oracle\product\11.2.0\client_1\network\admin 中。
- 編輯 Oracle Net (sqlnet.ora) 的配置
我們将使用它來首先确定名稱解析方法的優先級,定義預設域和時間間隔以驗證連接配接是否仍處于活動狀态。
為此,請在 sqlnet.ora 檔案中添加以下行。
NAMES.DIRECTORY_PATH= (TNSNAMES, HOSTNAME)NAMES.DEFAULT_DOMAIN = LOCALDOMSQLNET.EXPIRE_TIME = 30
重要的提示
定義 NAMES.DEFAULT_DOMAIN 時,您将始終必須使用完全限定的 TNS 名稱。如果您對使用不感興趣,可以将其删除
- 編輯名稱解析中使用的本地清單 (tnsnames.ora)
在配置中另一個非常重要的檔案是 tnsnames.ora 檔案。此 tnsnames.ora 檔案是一個配置檔案,其中包含映射到本地命名方法的連接配接描述符的網絡服務名稱,或映射到偵聽器協定位址的網絡服務名稱。
以下是用于建立連結伺服器的内容示例。
TESTSRV.LOCALDOM = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = TestSrv.st.chulg)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = TESTSRV.LOCALDOM) ) )
- 測試命名解析
打開 cmd.exe 并運作以下指令:
tnsping TESTSRV
您将收到類似于以下内容的文本:
建立到 Oracle 資料庫執行個體的連結伺服器
- 使用 SSMS
建立連結伺服器最友善的方法肯定是通過 SQL Server Management Studio。為此,請連接配接到 SQL Server 執行個體并找到 « Server Objects »,單擊一下,您将找到 « Linked Servers »。如果您右鍵單擊它,您将能夠建立一個新的連結伺服器。
如下提供連接配接資訊。作為資料源,您将使用 tnsnames.ora 檔案中使用的名稱(帶或不帶域名)。
在配置的安全部分,根據您的環境配置,您将選擇适當的方法用于遠端身份驗證。
您還可以檢視連結伺服器設定以根據您的環境進行調整。
單擊“确定”後,将建立連結伺服器并将其添加到“連結伺服器”清單中,如下所示。
我們可以測試連結伺服器。為此,請右鍵單擊它并選擇«測試連接配接»。
如果一切都配置好,您将看到以下對話框:
您還可以通過檢視樹視圖查詢的表和視圖:
最後,您可以運作以下查詢:
SELECT * FROM OPENQUERY([DBLNK_TEST] , 'select sysdate from dual') ;
小結
本文首先介紹了ORACLE用戶端的安裝過程,然後介紹了配置 Oracle 資料庫(稱為 Oracle Net)的網絡層的方法,最後介紹了連結伺服器的測試及查詢目标資料庫執行個體的方法。