64位环境上SSIS连接oracle

SSIS 為了要能夠在64位元的機器上面讓SSIS存取Oracle,當然需要安裝64位元的Oracle Provider.但是最大的問題在於SSIS在設計階段時利用的BI Development Studio只有32位元版,因此在開發時若是要測試資料連線,會找不到對應的32位元Data Provider.

因此若是要解決方式就必須同時安裝32位元以及64位元的Oracle Client。

 

以下說明,在64位元 Windows環境下安裝Oracle Client & OLEDB元件的步驟(我的作業系統是Windows Server 2008 R2):

  1. 需要先準備32位元以及64位元兩種版本的Oracle Client,建議使用11.1.0.7.0版,因為如果是使用10.2.0.1 版本需要再安裝兩個 Oracle patch (# 4547817 & # 5383042) ,如果沒有上 patch 會遇到 ORA-12154: TNS: 無法解析指定的連線 ID 的問題。
  2. 如果系統上有舊的Oracle clients,請複製備份tnsnames.ora以及sqlnet.ora檔案。(位於 %ORACLE_HOME%/network/ADMIN/目錄下)
  3. 解安裝以及刪除舊的Oracle client以及安裝目錄(需要重新開機,才能夠刪除目錄)。
  4. 在64位元 SQL Server的機器上面執行Oracle 11g Client 的setup.exe,必須先安裝32位元版本
    1. 在選取安裝類型時選擇「自訂」

      clip_image006

      1. 需修改路徑

      clip_image008

      在此我將32位元的路徑資料夾改為client_32,    將64位元的路徑資料夾改為client_64.

      1. 需勾選 “Oracle Windows Interfaces 11.x.x” 元件以及視需求再勾選"Oracle NET 11.1"、"SQL*PLUS 11.1"。      clip_image010
      1. 安裝完後重新將TNSNAMES.ORA置換至新的%ORACLE_HOME%/network/admin資料夾
      2. 重複以上步驟再安裝一次64位元Client

      clip_image012

      1. 安裝時會出現「OracleMTSRecoveryService 已存在」的錯誤訊息,請請點選「忽略」。

      clip_image014

      1. 修改以下的registry設定,然後重開機      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI     HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSDTC\MTxOCI    
      2.    將值改為       OracleOciLib = oci.dll     

                                 OracleSqlLib = orasql11.dll   (舊的值是: SQLLib80.dll)   

                                     OracleXaLib = oraclient11.dll  (舊的值是: xa80.dll) 

      clip_image016

      此時就可以正常地在64位元環境中的BIDS存取Oracle資料了。

但是要記得的是,使用BIDS時,它是根據32位元的資料提供者,因此在開發以及偵錯時還是利用32位元的Oracle OLEDB來存取資料。但是當SSIS封裝佈署到64位元 SQL Server執行時,他就會改使用64位元的Oracle OLEDB。

posted @ 2012-10-23 13:15  孙晓东  阅读(1552)  评论(0编辑  收藏  举报