杨校 2015-01-29
前言:之前已经整理过两个文档是关于Oracle透明网关连接mysql数据库和sqlserver数据库的,本来以为不会再通过透明网关连接其他的数据库了,但是居然又碰到了,就是oracle通过透明网关连接sybase数据库,再次不厌其烦的整理成了文档;
注:里面整理了透明网关的搭建、连接sqlserver数据库、mysql数据库的方法,由于时间紧张请各位在博客里面搜索下;
正文:配置透明网关连接sybase数据库的方法其实和连接sqlserver的方法,几乎是一模一样的。(有网友说明需要安装sybase的客户端驱动,但是经过验证是不用的)
二、详细的操作截图如下:
按照以上步骤操作即可;
三、透明网关的配置
3.1配置透明网关的参数文件
进入目录:$ORACLE_HOME/dg4sybs/admin/
根据参数文件initdg4sybs.ora,创建一个参数文件initecc.ora(参数文件名为initsid.ora)
# This is a customized agent init file that contains the HS parameters
# that are needed for the Database Gateway for Sybase
#
# HS init parameters
#
HS_FDS_CONNECT_INFO=192.168.0.124:4901/ECC(修改该栏即可)
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
3.2 修改数据库的监听配置
注:只在SID_LIST下面增加SID_DESC:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC=
(SID_NAME=ECC)
(ORACLE_HOME=d:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM=dg4sybs)
)
)
请注意:
SID_NAME要跟上面的参数文件名称相对应
ORACLE_HOME 目录跟实际的安装目录相符
PROGRAM 为dg4sybs
配置好监听文件后,重启下lisnrctl
3.3 增减tnsnames文件的配置
ECC =(注:可设置为任意名)
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST= localhost)(PORT=1521))
(CONNECT_DATA=(SID=ECC))
(HS=OK)
)
请注意:
SID的名字为监听文件配置的名字;
配置完成,可以运行tnsping ECC
四、配置dblink
SQL> CREATE PUBLIC DATABASE LINK ECC_LINK CONNECT TO "username" IDENTIFIED BY "password" USING 'ECC';
ECC_LINK名字可以根据要求自己定;
'ECC'为tnsnames文件配置的名称;
配置完成运行:select * from dual@ECC_LINK; 有返回值说明配置成功;
提示: sybase 数据库是区分大小写的,因此许多表名、字段如果含有小写内容,需要用双引号扩住。
实际上 oracle 也是可以区分大小写的,但平时只要不用双引号,oracle 会自动转化为大写。
总结:透明网关连接sybase的设置跟sqlserver的配置几乎是一样的,按照这个操作一般是没有问题的,但是整个过程设计的名称建议有一个内部的规范,后面再使用的过程中就会发现这个规范带来的管理上的好处;