通过Oracle透明网关连接Sybase

Oracle公司提出的透明网关技术可用于实现与其他多种类型的数据库的互联,实现不同类型数据之间建立连接,方便于使用者进行查询。近日,在公司的某项目的实施过程中,开发人员需要访问Sybase数据库中的某些表,就想到创建一个中间库,使用Oracle透明网关,创建dblink去读取数据。由于在安装过程中出现过不少的错误,特此记录一下配置过程。

一、安装透明网关

先从Oracle的官方网站下载所需版本的透明网关软件。我这里选用的是win32_11gR2_gateways。安装过程可以参看网络搜索上的教程,这里只提两点需要注意的地方:
(1)、透明网关的安装路径不要选择默认,应置于ORACLE_HOME目录下(透明网关和数据库在同一台服务器上)。
(2)、安装之前应准备好异构数据库(Sybase)的IP地址、端口、数据库名。

二、配置透明网关

安装好透明网关软件后,会在$ORACLE_HOME/dg4sybs/admin目录下生成对应的配置文件initdg4sybs.ora。由于我使用的是Windows服务器,配置文件为C:\app\oracle\product\11.2.0\dbhome_1\dg4sybs\admin\dg4sybs.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=[198.168.1.11]:7000/HNXS
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER

该配置文件是在安装透明网关的过程中系统自动生成的,原则上不用修改,可以基于此进行后续的配置(你也可以initdg4sybs.ora为模板,创建自己的透明网关配置文件initsid.ora)。另外请注意C:\app\oracle\product\11.2.0\dbhome_1\dg4sybs\admin目录下的另外两个文件:listener.ora.sample和tnsnames.ora.sample,需理解其中的内容。

三、添加监听和TNS配置

这时listener.ora.sample和tnsnames.ora.sample这两个示例文件就可以帮助我们方便的完成配置文件的修改,将listener.ora.sample文件中的"(SID_DESC = ..."部分的内容放到listener.ora文件的SID_LIST下,保存。将tnsnames.ora.sample文件中的“dg4sybs = ...”部分的内容拷贝到tnsnames.ora文件中,保存。配置完成之后,重启监听。

四、创建访问Sybase的DBLINK

create publice database link dblink_name connect to "username" identified by "password" using ‘dg4sybs‘;

执行该命令有两点需要注意:

(1)、用户名为访问sybase数据库的用户名和密码。
(2)、如果使用透明网关默认的配置文件的话这里就用dg4sybs,否则,使用你自己定义的SID。

五、测试访问

C:\>tnsping dg4sybs

TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 13-7月 -
2016 12:40:40

Copyright (c) 1997, 2010, Oracle.  All rights reserved.

已使用的参数文件:
C:\app\oracle\product\11.2.0\dbhome_1\network\admin\sqlnet.ora

已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=10.10.4.4)(PORT=1521)) (CONN
ECT_DATA=(SID=dg4sybs)) (HS=OK))
OK (10 毫秒)

C:\>sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on 星期三 7月 13 12:41:15 2016

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select * from [email protected]_link;

DUMMY
------
X

至此,所有操作完成,配置成功!

时间: 2024-11-07 17:21:44

通过Oracle透明网关连接Sybase的相关文章

Oracle 11g透明网关连接Sqlserver 2000(转)

Oracle 11g透明网关连接Sqlserver 2000: http://www.cnblogs.com/lightnear/archive/2013/02/03/2890858.html

在eclipse中Java连接Sybase和oracle的例子

1.连接Sybase 1)准备工作: 准备Sybase驱动jconn2.jar,在eclipse中引用这个jar包: 在项目上右键>Build Path>Add External Archives...,找到jconn2.jar,点确定. note:网上有一片文章,把jconn2.jar放到CLASSPATH环境变量中,这种方法在命令行中用javac手工编译可行.在Eclipse中需要把jconn2.jar引入项目才行. 2)一段示例代码 package connDB; import java

Oracle Table连接方式分析

Oracle Table连接方式分析 表连接基本知识: 1.哪张表将驱动查询(即访问的第一张表)?按照指定的路径查询,何时将访问到没一张表?可选的驱动路径有哪些? 2.可能出现哪些Oracle连接?记住:在Oracle中,连接顺序.可选的索引.用于排序和建立散列表的可用内存的不同都会导致不同的结果. 3.哪些索引是可用的?哪些索引是可选的?索引的选择不仅仅将导致优化器使用或者限制一个索引,还将改变驱动查询的方式,并可能决定使用或者限制查询中其他的索引. 4.哪些提示提供了可选的路径?哪些提示限制

Oracle左连接、右连接、全外连接以及(+)号用法(转)

Oracle  外连接(OUTER JOIN) 左外连接(左边的表不加限制) 右外连接(右边的表不加限制) 全外连接(左右两表都不加限制) 对应SQL:LEFT/RIGHT/FULL OUTER JOIN. 通常省略OUTER关键字, 写成:LEFT/RIGHT/FULL JOIN. 在左连接和右连接时都会以一张A表为基础表,该表的内容会全部显示,然后加上A表和B表匹配的内容. 如果A表的数据在B表中没有记录. 那么在相关联的结果集行中列显示为空值(NULL). 对于外连接, 也可以使用“(+)

西安北大青鸟探寻oracle的连接问题

今天在为学生讲述西安java培训用scott用户登录oracle数据库时,竟然出现了ORA-01017: invalid username/password; logon denied错误,原以为是因为我的scott用户没有解锁,后用system用户登录,然后用alter user scott account unlock语句对scott用户进行解锁,可是解锁后依然不能进入,还是报告ORA-01017: invalid username/password; logon denied错误,仔细想了

Oracle左连接、右连接、全外连接以及(+)号用法

阅读目录 1.准备工作 2.左外连接(LEFT OUTER JOIN/ LEFT JOIN) 3.右外连接(RIGHT OUTER JOIN/RIGHT JOIN) 4.全外连接(FULL OUTER JOIN/FULL JOIN) 1.准备工作 Oracle  外连接(OUTER JOIN)包括以下: 左外连接(左边的表不加限制) 右外连接(右边的表不加限制) 全外连接(左右两表都不加限制) 对应SQL:LEFT/RIGHT/FULL OUTER JOIN. 通常省略OUTER关键字, 写成:

Oracle字符串连接的方法

Oracle数据库中,使用“||”进行字符串连接,下面就让我们一起了解一下Oracle数据库中字符串连接的方法,希望对您能有所帮助. 和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样. 比如执行下面的SQL语句:SELECT '工号为'||FNumber||'的员工姓名为'||FName FROM T_EmployeeWHERE FName IS NOT NULL 除了“||”,Oracle还支持使用CONCAT()函数

Oracle的连接与会话

连接并不是会话的同义词,在一条连接上可以建立0个.一个或多个会话.各个会话是单独而且独立的,即使它们共享同一条数据库物理连接也是如此.一个会话中的提交不会影响该连接上的任何其他会话.实际上,一条连接上的各个会话可以使用不同的用户身份! 在Oracle中,连接只是客户进程和数据库实例之间的一条特殊线路,最常见的就是网络连接.这条连接可能连接到一个专用服务器进程,也可能连接到调度程序.如前所述,连接上可以有0个或多个会话,这说明可以有连接而无相应的会话.另外 ,一个会话可以有连接也可以没有连接.使用

Oracle远程连接

Oracle远程连接不是直接使用Ip加端口 这种形式,而是使用TNS(个人感觉和ODBC的DSN有点类似,在某个地方保存一些设置,然后给这些设置起个名字,用的时候直接写这个名字就行了) TNS目录位置: 安装目录\Network\Admin\tnsnames.ora ORCL32 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICA