【Oracle】GateWay 研究之 Oracle 與 Informix 的資料串連
5月 18, 2018 , Posted by User31
上面有命,下面執行,還好本次研究的串連有成功,完美交差,讓人鬆一口氣。
之前公司接到一個案子,要與客戶的資料庫(Informix)進行資料交換。
上面有命,下面執行,還好本次研究的串連有成功,完美交差,讓人鬆了一口氣。
實驗結論
Oracle GateWay 有支援的資料庫串連,其實非常的多,還好有支援 Informix 之串連。
建立好 GateWay,接著使用 DBLink,就能很輕鬆的取得其他資料庫之資料了。
本次最難的還是要去研究上古資料庫,informix 吧 ?
淺談 Informix
追女生,也得先了解一下對方的喜好,串連資料庫也同理。
版本
Informix 是 IBM 出的資料庫。
有許多版本,本次使用開發的
Informix Developer Edition
安裝 Informix
原則上都預設,一直下一步就好了
注意 InForMix 的密碼,預設跟 Windows 的登入帳號密碼相同
設定動態伺服器
安裝好以後,就可以設定動態伺服器,開放對外連線 (開始圖示如下圖所示)
測試連線是否正常
使用 Inofrmix Client ODBC 來測試連線。
控制台 → 系統管理工具 → ODBC 使用者資料來源名稱 → 新增 → 設定 → connection
建立串連
- 安裝 Oracle GateWay
- 設定連線資訊
- 設定 Oracle Home Listener
- 設定 GateWay Listener
- 重新啟動 Oracle 服務
- 設定 Oracle Home Tsname
- 建立 Public DBLink
- 測試連線與語法注意事項
安裝 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
路徑預設(應該會導向安裝 Oracle Server 之位置)
要安裝的 GateWay,本次選擇 Informix
輸入要連線的 Informix 資訊(事先設好,後面不用重設)
安裝完成
會多一個 tg_1 資料夾
資料夾內存有 Informix 連線資訊,檔案:Initdg4ifmx.ora
設定連線資訊
安裝時有輸入連線資訊,就會自動產生
HS_FDS_CONNECT_INFO=[IP位置]:Port/主機名稱/DB名稱
HS_FDS_CONNECT_INFO 對應 Windows ODBC 連線資訊
[IP 位置] → Host Name
8101 → Service
on_tcp1 → Server Name
pcb → Database Name
Windows ODBC 連線資訊
設定 Oracle Home Listener
Listener.ora,增加語法如下,注意ORACLE_HOME,要指向GateWay 安裝位置
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相衝突
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = Danny-PC)(PORT = 1523))
)
)
重新啟動 Oracle 服務
控制台\所有控制台項目\系統管理工具\服務\
設定 Oracle Home Tsname
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。
沒有留言:
張貼留言