透明網關概念 ORACLE透明網關(Oracle Transparent Gateway)可以解決ORACLE資料庫和非ORACLE資料庫交互數據的需求。在一個異構的分散式環境中,通過ORACLE透明網關可以訪問其他類型資料庫,例如DB2,SQL Server、Sybase....。這個類似於SQL... ...
透明網關概念
ORACLE透明網關(Oracle Transparent Gateway)可以解決ORACLE資料庫和非ORACLE資料庫交互數據的需求。在一個異構的分散式環境中,通過ORACLE透明網關可以訪問其他類型資料庫,例如DB2,SQL Server、Sybase....。這個類似於SQL Server裡面的LINKED SERVER可以直接訪問異構的資料庫環境,由於Windows本身提供了很多驅動,所以有時候不需要安裝額外的驅動程式,有時候也需要安裝相關驅動才能訪問(例如,SQL SERVER 通過LINKED SERVER訪問ORACLE資料庫,就必須安裝Oracle Client客戶端相關組件),而ORACLE則必須通過透明網關才能訪問其它類型資料庫,官方文檔關於透明網關的介紹如下:
Oracle Database Gateways provide the ability to transparently integrate with non-Oracle systems from an Oracle environment. This transparency eliminates the need for application developers to customize their applications to access data from different non-Oracle systems, thus decreasing development efforts and increasing the mobility of the application. Applications can be developed using a consistent Oracle interface for both Oracle and non-Oracle systems.
For smooth interoperability between disparate systems, SQL translations, data dictionary translations and data type translations are required, even if the non-Oracle systems are based on SQL standards. Gateways have the ability to translate one system's dialect to another.
Oracle has tailored Gateways to many systems, DB2, Sybase, Informix, SQL Server, IMS, VSAM, Adabas, to name a few. These are specifically coded for the target non-Oracle system. They provide an optimized solution and are also end-to-end certified.
ORACLE官方關於透明網關的文檔資料,請見鏈接http://www.oracle.com/technetwork/database/gateways/index.html,主要有Database Gateways Features Overview 與Database Gateways Technical Whitepaper等相關資料。
透明網關安裝
關於透明網關的安裝,透明網關可以安裝在Windows平臺或Linux平臺;它既可以和ORACLE資料庫實例安裝在一起(Oracle Server端),也可以安裝在其它資料庫伺服器上(例如,安裝在SQL Server資料庫伺服器上),也可以安裝在一臺跟資料庫無任何關係的機器上。也就是說Oracle Gateway架構設計的耦合性非常低。剛開始接觸透明網關時,透明網關需要安裝在哪裡這個問題一直困擾我,直到我一一驗證測試。通俗的來說,透明網關可以裝在任意的一臺機器上,如果透明網關安裝在Oracle Server端,這時候Server自身擔當兩種角色:伺服器和透明網關代理,如果安裝在非Oracle Server端,那麼其他伺服器就充當透明網關代理的角色。
Windows平臺安裝
從官方網址下載win32_11gR2_gateways.zip http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/112010-win32soft-098630-zhs.html安裝介質後,解壓安裝,安裝步驟非常簡單,本身安裝文件裡面也有詳細安裝文檔,本不需在這裡過多介紹,不過,對於一些初次初學者,也有一些細節地方需要註意。如下所示,對一些步驟做了截圖處理。
選擇安裝路徑,這個路徑可以和ORACLE資料庫路徑一致(一般很少有ORACLE實例安裝在Windows平臺,如果是安裝在Linux平臺,可以和ORACLE實例的安裝路徑一致,也可以任意選擇一個路徑),也可以單獨選擇一個安裝路徑。
選擇需要安裝的組件,例如我這裡只需要通過透明網關訪問SQL Server 資料庫。那麼我只勾選了下麵一個組件。
在這裡需要提供SQL Server資料庫伺服器名或IP、實例名稱、資料庫名稱等等。
安裝完成後,你會在D:\product\11.2.0\tg_1\dg4msql\admin這個路徑(這個與安裝目錄有關係,都是位於$ORACLE_HOME\dg4msql\admin)下看到initdg4msql.ora 文件。
如下所示,如果前面UI界面填寫了相關信息。那麼在透明網關初始化參數文件initdg4msql.ora下就會有相關信息。如下所示。註意,預設使用的分隔符為“/”,ORACLE透明網關安裝在一個Windows 2012應用伺服器上。實際上,使用分隔符"/"是會遇到一些問題的(應該使用//),Windows平臺的正確分隔符為“.”。後續會介紹這個案例,當然如果是Linux平臺使用分隔符“/”則沒有任何問題。
# This is a customized agent init file that contains the HS parameters
# that are needed for the Database Gateway for Microsoft SQL Server
#
# HS init parameters
#
HS_FDS_CONNECT_INFO=[192.168.27.57]/MSSQLSERVER/TEST
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
Oracle Net 配置,可以通過圖形界面配置,也可以忽略這些步驟,後續通過手工編輯配置Oracle Net
如下所示,在D:\product\11.2.0\tg_1\network\admin\listener.ora下麵,你會看到下麵配置信息:
# listener.ora Network Configuration File: D:\product\11.2.0\tg_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
ADR_BASE_GW_LISTENER = D:\product\11.2.0\tg_1
GW_LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.27.132)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
)
)
當然這個配置信息不全,正確的配置信息如下所示(註意:這裡監聽器名稱為GEW_LISTENER,這個與預設監聽器名稱LISTENER有細微不同):
ADR_BASE_GEW_LISTENER = D:\product\11.2.0\tg_1