一,、透明網(wǎng)關(guān)連接到一個(gè)sqlserver上
1,、下載透明網(wǎng)關(guān)
10g下,透明網(wǎng)管是一個(gè)單獨(dú)的組件,,需要單獨(dú)下載安裝,。
2、安裝
在192.168.61.146(Oracle)安裝透明網(wǎng)關(guān):
解壓后,,進(jìn)入目錄,,右鍵點(diǎn)擊setup.exe,選擇屬性,,兼容性,,選擇兼容Windows2003 sp1,并使用管理員運(yùn)行,。
執(zhí)行setup.exe,,啟動(dòng)安裝界面,安裝oracle transparent gateway for microsoft sql server,;
下一步,,輸入sqlserver地址和sqlserver 數(shù)據(jù)庫名,這里你可以輸入正確的,,也可以隨便輸入,,或者留空,我們可以安裝完成后再配置,。
安裝完后,,會(huì)彈出配置監(jiān)聽界面,這時(shí)候,,必須以另一個(gè)監(jiān)聽名,,區(qū)別原來oracle的監(jiān)聽名(如listener1),同時(shí),,端口也不能和oralce實(shí)例的端口沖突,,如1522,全部安裝完成,在windows的服務(wù)管理器中可以看到多了一個(gè)服務(wù)OracleOraTg10g_home1TNSListenerLISTENER1,看清不同于實(shí)例的監(jiān)聽OracleOraDb10g_home1TNSListener,。
二,、配置path參數(shù)
編輯系統(tǒng)的Path變量,將oracle 實(shí)例的path放在GATEWAYS的PATH的前面,。
三,、配置透明網(wǎng)關(guān)
默認(rèn)情況下,安裝透明網(wǎng)關(guān)時(shí)會(huì)生成一個(gè)默認(rèn)的參數(shù)文件:inittg4msql.ora,,它的sid是tg4mssql,,你可以使用這個(gè)文件,,也可以新建一個(gè)文件,。本例選擇新建文件。
進(jìn)入$GATEWAY_HOME\tg_1\tg4msql\admin目錄我這里是:($GATEWAY_HOME是指透明網(wǎng)關(guān)的安裝主目錄)
F:\oracle\product\10.2.0\tg_1\tg4msql\admin
新建一個(gè)文件:initjss.ora
這個(gè)名字隨便取,,但要注意格式:init<sid>.ora,,把它理解為oracle的參數(shù)文件就可以。
# This is a sample agent init file that
contains the HS parameters that are
# needed for the Transparent Gateway for
SQL Server
#
# HS init parameters
#
HS_FDS_CONNECT_INFO="SERVER=機(jī)器名;DATABASE=數(shù)據(jù)庫名"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
|
注意機(jī)器名必須不能是IP,,如果dns不能解析的話就在本地hosts文件加上相關(guān)的映射記錄就ok了,。
如果訪問的是非標(biāo)準(zhǔn)端口的sql server,可以通過別名來訪問,,對應(yīng)的HS_FDS_CONNECT_INFO則應(yīng)該寫成:HS_FDS_CONNECT_INFO=別名.數(shù)據(jù)庫名,。
在注冊表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client(64位系統(tǒng)則對應(yīng)的是:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSSQLServer\Client)下新建項(xiàng)ConnectTo,然后在新建的ConnectTo下新建字符串值,。在數(shù)值名稱中輸入你的sqlserver別名,,在數(shù)值數(shù)據(jù)中輸入:DBMSSOCN,IP地址,端口。
四,、配置gateway監(jiān)聽
打開$GATEWAY_HOME\tg_1\NETWORK\ADMIN\listener.ora
追加sid描述 SID_DESC部分內(nèi)容如下
SID_LIST_LISTENER1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = d:\oracle\product\10.2.0\tg_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = jss) #前面的文件名
(ORACLE_HOME = d:\oracle\product\10.2.0\tg_1)
(PROGRAM = tg4msql) #規(guī)定
)
)
LISTENER1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle的ip)(PORT = 1522)) #新的
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
|
在命令行狀態(tài)運(yùn)行gateway的lsnrctl:
C:\>D:\oracle\product\10.2.0\tg_1\BIN\LSNRCTL.EXE
LSNRCTL
for 32-bit Windows: Version 10.2.0.1.0 – Production on 08-4月 -2011 09:48:49
Copyright
(c) 1991, 2005, Oracle. All rights reserved.
歡迎來到LSNRCTL, 請鍵入”help”以獲得信息,。
LSNRCTL>
status
正在連接到
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
LISTENER
的 STATUS
————————
別名 LISTENER
版本 TNSLSNR for 32-bit Windows:
Version 10.1.0.2.0 – Production
啟動(dòng)日期 08-4月 -2011 09:42:47
正常運(yùn)行時(shí)間 0 天 0 小時(shí) 6 分 4 秒
跟蹤級別 off
安全性 ON: Local OS Authentication
SNMP
OFF
監(jiān)聽程序參數(shù)文件
d:\oracle\product\10.1.0\Db_1\network\admin\listener.ora
監(jiān)聽程序日志文件
d:\oracle\product\10.1.0\Db_1\network\log\listener.log
監(jiān)聽端點(diǎn)概要…
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROCipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=mashimaro)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=mashimaro)(PORT=8080))(Presentation=HTTP)(Session=RAW))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=mashimaro)(PORT=2100))(Presentation=FTP)(Session=RAW))
服務(wù)摘要..
服務(wù) “PLSExtProc” 包含 1 個(gè)例程。
例程 “PLSExtProc”, 狀態(tài) UNKNOWN, 包含此服務(wù)的 1 個(gè)處理程序…
服務(wù) “orcl” 包含 1 個(gè)例程,。
例程 “orcl”, 狀態(tài) READY, 包含此服務(wù)的 1 個(gè)處理程序…
服務(wù) “orclXDB” 包含 1 個(gè)例程,。
例程 “orcl”, 狀態(tài) READY, 包含此服務(wù)的 1 個(gè)處理程序…
命令執(zhí)行成功
LSNRCTL>
show cur
目前的監(jiān)聽程序?yàn)?/span> LISTENER
LSNRCTL>
set cur listener1
目前的監(jiān)聽程序?yàn)?/span> listener1
LSNRCTL>
status
正在連接到
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.226)(PORT=1526)))
LISTENER
的 STATUS
————————
別名 LISTENER1
版本 TNSLSNR for 32-bit Windows:
Version 10.2.0.1.0 – Production
啟動(dòng)日期 08-4月 -2011 09:41:12
正常運(yùn)行時(shí)間 0 天 0 小時(shí) 8 分 3 秒
跟蹤級別 off
安全性 ON: Local OS Authentication
SNMP
OFF
監(jiān)聽程序參數(shù)文件
d:\oracle\product\10.2.0\tg_1\network\admin\listener.ora
監(jiān)聽程序日志文件
d:\oracle\product\10.2.0\tg_1\network\log\listener1.log
監(jiān)聽端點(diǎn)概要…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.3.226)(PORT=1526)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
服務(wù)摘要..
服務(wù) “MSSQL” 包含 1 個(gè)例程。
例程 “MSSQL”, 狀態(tài) UNKNOWN, 包含此服務(wù)的 1 個(gè)處理程序…
服務(wù) “PLSExtProc” 包含 1 個(gè)例程,。
例程 “PLSExtProc”, 狀態(tài) UNKNOWN, 包含此服務(wù)的 1 個(gè)處理程序…
命令執(zhí)行成功
LSNRCTL>
exit
|
五,、配置oracle的tnsnames,增加以下內(nèi)容
JSS =
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=oracle的ip)
(PORT=1522) #新的listener端口
)
(CONNECT_DATA=
(SID=jss))
(HS=OK)
)
|
六,、建立數(shù)據(jù)連接
1.修改$GATEWAY_HOME\ NETWORK\ADMIN\sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES = (NONE)
2.在pl/sql中執(zhí)行:
create public database link jssdb connect
to 用戶名 identified by “密碼” using ‘jss;
密碼不能有諸如?號(hào)的特殊字符,,否則不能存儲(chǔ)
七、尾聲
參考:
http://tianzt.blog.51cto.com/459544/222395
http://www./Database/Oracle/A_9850-Configuring-and-using-Oracle-Database-Gateway-for-ODBC.html
|