【Oracle】GateWay 研究之 Oracle 與 Informix 的資料串連


之前公司接到一個案子,要與客戶的資料庫(Informix)進行資料交換。
上面有命,下面執行,還好本次研究的串連有成功,完美交差,讓人鬆一口氣。
Send_Email_By_Javascript

之前公司接到一個案子,要與客戶的資料庫(Informix)進行資料交換。
上面有命,下面執行,還好本次研究的串連有成功,完美交差,讓人鬆了一口氣。

實驗結論

Oracle GateWay 有支援的資料庫串連,其實非常的多,還好有支援 Informix 之串連。
建立好 GateWay,接著使用 DBLink,就能很輕鬆的取得其他資料庫之資料了。
本次最難的還是要去研究上古資料庫,informix 吧 ?

淺談 Informix

追女生,也得先了解一下對方的喜好,串連資料庫也同理。

版本

Informix 是 IBM 出的資料庫。
有許多版本,本次使用開發的 Informix Developer Edition

Informix 版本

安裝 Informix

原則上都預設,一直下一步就好了
注意 InForMix 的密碼,預設跟 Windows 的登入帳號密碼相同

Informix 安裝

設定動態伺服器

安裝好以後,就可以設定動態伺服器,開放對外連線 (開始圖示如下圖所示)

設定動態伺服器

測試連線是否正常

使用 Inofrmix Client ODBC 來測試連線。
控制台 → 系統管理工具 → ODBC 使用者資料來源名稱 → 新增 → 設定 → connection

Informix 測試

建立串連

  1. 安裝 Oracle GateWay
  2. 設定連線資訊
  3. 設定 Oracle Home Listener
  4. 設定 GateWay Listener
  5. 重新啟動 Oracle 服務
  6. 設定 Oracle Home Tsname
  7. 建立 Public DBLink
  8. 測試連線與語法注意事項

安裝 Oracle GateWay

可以想像成一個任意門,透過它就可以連向別家廠商的資料庫(有支援的)。

必要軟體
  • Oracle Server (Oracle Home)
  • Oracle GateWay
下載安裝程式

本次使用
【Oracle Database Gateways 11g Release 2 (11.2.0.1.0) for Microsoft Windows (x64)】

安裝

安裝 setup.exe

setup.exe

路徑預設(應該會導向安裝 Oracle Server 之位置)

路徑

要安裝的 GateWay,本次選擇 Informix

安裝 GateWay

輸入要連線的 Informix 資訊(事先設好,後面不用重設)

連線 Informix 資訊
安裝完成

會多一個 tg_1 資料夾

多 tg_1 資料夾

資料夾內存有 Informix 連線資訊,檔案:Initdg4ifmx.ora

Informix 連線資訊

設定連線資訊

安裝時有輸入連線資訊,就會自動產生
HS_FDS_CONNECT_INFO=[IP位置]:Port/主機名稱/DB名稱

Informix 連線資訊

HS_FDS_CONNECT_INFO 對應 Windows ODBC 連線資訊

[IP 位置] → Host Name
8101 → Service
on_tcp1 → Server Name
pcb → Database Name
Windows ODBC 連線資訊

Windows ODBC 連線資訊對應

設定 Oracle Home Listener

Listener.ora,增加語法如下,注意ORACLE_HOME,要指向GateWay 安裝位置

(product\11.2.0\dbhome_1\NETWORK\ADMIN\Listener.ora)

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\app\user\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\app\user\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
    (SID_DESC=
      (SID_NAME=dg4ifmx)
      (ORACLE_HOME=D:\product\11.2.0\tg_1)
      (PROGRAM=dg4ifmx)
    )
  )

設定 GateWay Listener

增加 Listener.ora 檔案於(複製 Oracle Home 的就可以)
Ps.注意,要把這裡的 port 改 1523,避免跟Home相衝突

D:\product\11.2.0\tg_1\NETWORK\ADMIN

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = Danny-PC)(PORT = 1523))
    )
  )

重新啟動 Oracle 服務

控制台\所有控制台項目\系統管理工具\服務\

重新啟動 Oracle 服務

設定 Oracle Home Tsname

Tsname 增加 DBLink 要連線的資訊如下

(\product\11.2.0\dbhome_1\NETWORK\ADMIN\tsnames.ora)

Tsname 增加 DBLink 要連線的資訊

建立 Public DBLink

Oracle 語法如下,注意紅色部分為 Tsname 所設定的名稱

CREATE PUBLIC DATABASE LINK "EF2KWEB"
CONNECT TO "informix" IDENTIFIED BY "!QAZ2wsx"
USING 'EF2KWEB';

測試連線與語法注意事項

Oracle 語法如下,注意 Table 名稱、欄位都要加分號
Ex. “TableName” , “ColumnName”

--測試
SELECT * FROM dual@"EF2KWEB"

結語

還好有 Oracle GateWay 的技術,在串連資料上少了很多麻煩,未來或許可以試著用該技術串連 SqlServer。

沒有留言:

張貼留言