最近在研究資料從sql server 2000 向oracle遷移,有多種方法,但各有優點和缺點
方法一是用ms sql server內建的DTS 進行遷移,使用起來很方面,但image等類型的欄位無法用dts匯入,並且資料量大的情況下,會出現記憶體溢出的情況,一個2G記憶體的電腦能被活活拖死
第二種辦法是用Oracle的透明網關,然後建立一個向sql server 的連結,通過該連結就可以訪問sql server的資料,下面詳細介紹如何在oracle伺服器上建立透明網關
1 首先當然要在安裝的時候就要安裝好tg4msql(Oracle Transparent Gateway for ms sql server)工具,需要自訂安裝,已經安裝好的oracle 9i仍可以進行修複安裝.
2 $ORACLE9I_HOME/tg4msql/admin下修改inittg4msql.ora檔案:
HS_FDS_CONNECT_INFO="SERVER=sqlserver_hostname;DATABASE=pubs"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
3 修改listener.ora的內容,在SID_LIST_LISTENER 中添加一段:
(SID_DESC=
(SID_NAME=pubs)
(ORACLE_HOME=d:/Oracle/Ora92)
(PROGRAM=tg4msql)
)
4 重起TNSListener服務
5 修改tnsnames.ora的內容,添加一段:
pubs =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.1)(PORT = 1521))
)
(CONNECT_DATA =
(SID = pubs)
)
(HS = OK)
)
儲存
6 至此透明網關配置完成,可以在命令列提示符下進行測試連接:TNSPING pubs
如果測試為OK,則說明測試完成,如果逾時,請詳細檢查各種ora檔案,還要確保sql server 伺服器開通了1521連接埠,免得被防火牆攔截了
下面就可以建立資料庫連結了:
sql>create public database link pubs connect to sa identified by pwd using 'pubs';
sql>select * from stores@pubs;
sql>select "column1" from table1@pubs;