1.安装透明网关oracle 10g for windows版本
安装介质10201_gateways_win32.zip
从oracle11g开始,才开始提供透明网关for unix版本的下载。
在装的过程中选择for sqlserver和for sybase,并且输入sqlserver所在数据库的ip地址和数据库名和sysbase所在数据库的ip地址和数据库名。
2.透明网关所在服务器listener.ora配置
LISTENER =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=86.28.23.44)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=tg4msql)--for sqlserver网关
(ORACLE_HOME=/oracle/app/oracle/product/10.2)
(PROGRAM=tg4msql)
)
(SID_DESC=
(SID_NAME=tg4sybs)--for sysbase网关
(ORACLE_HOME=/oracle/app/oracle/product/10.2)
(PROGRAM=tg4sybs)
)
)
注意实例名为什么是tg4msql主要是看$ORACLE_HOME/tg4msql/admin/
inittg4msql,init后面一串tg4msql就是sid_name。
sysbase也是一样
$ORACLE_HOME/tg4sybs/admin/inittg4sybs
重启监听,查看lsnrctl status,监听到tg4msql和tb4sybs的服务。
3.透明网关所在服务器配置tnsnames.ora文件
tg4msql =--for sqlserver
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=86.28.23.44)(PORT=1521))
(CONNECT_DATA=(SID=tg4msql))
(HS=ok)
)
tg4sybs =--for sybase
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=86.28.23.44)(PORT=1521))
(CONNECT_DATA=(SID=tg4sybs))
(HS=ok)
)
4.配置inittg4msql和initg4sybs文件
文件存放路径$ORACLE_HOME/tg4msql或tg4sybs/admin下的inittg4msql和inittg4sybs文件
inittg4msql配置如下:
HS_FDS_CONNECT_INFO="SERVER=86.28.16.5;DATABASE=CKTS_ZH"--10g连接sqlserver写法
#HS_FDS_CONNECT_INFO=[86.28.16.5]//CKTS_ZH--11g连接sqlserver写法
HS_LANGUAGE=AMERICAN_AMERICA.US7ASCII--字符集设置
HS_TRANSACTION_MODEL=READ_ONLY_AUTOCOMMIT--事物处理sqlserver
HS_FDS_TRANSACTION_MODEL= READ_ONLY_AUTOCOMMIT--事物处理sybase
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
Inittg4sybs配置如下:
HS_FDS_CONNECT_INFO=dec_cits.zjcits
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
HS_FDS_TRANSACTION_MODEL=READ_ONLY_AUTOCOMMIT#
# Environment variables required for Sybase
#
set SYBASE=d:\sybaseserver
5.测试连通性
创建dblink访问sqlserver数据库,
创建一个用户paul/paul
Connect paul/paul
SQL> create database link dblink_cms connect to "root" identified by "rootcms" using 'tg4msql';
Database link created.
注意,要用双引号将root, rootcms引起来。
SQL> select count(*) from cpcode@dblink_cms;
在客户那遇到问题是,一直hang在那,没有结果集出来,也没有反应,如果按ctrl+c则报下面错误,在metalink没查到相关案例,最后是通过重启oracle 10g数据库和重启透明网关所在的服务器解决,重启后,能正常查询。