Oracle Gateway(透明网关) for DB2
- 格式:doc
- 大小:118.50 KB
- 文档页数:4
ORACLE跨服务器访问数据库在ORACLE中,可以使用以下几种方式实现跨服务器访问数据库:1. 使用数据库链接(Database Link):数据库链接是一个定义在本地数据库中的对象,它指向远程数据库服务器的连接信息。
通过数据库链接可以在本地数据库中访问远程数据库中的表、视图等对象。
使用数据库链接可以像操作本地数据库一样操作远程数据库。
创建数据库链接的语法如下:CREATE DATABASE LINK <link_name>CONNECT TO <username> IDENTIFIED BY <password>USING '<remote_service_name>';在创建数据库链接时,需要提供连接到远程数据库的用户名和密码以及远程数据库的服务名。
创建完数据库链接后,可以使用该链接在本地数据库中执行SQL语句来访问远程数据库。
2. 使用透明网关(Transparent Gateway):透明网关是指在ORACLE数据库服务器和其他数据库服务器之间建立的一个桥梁。
通过透明网关可以将ORACLE数据库与其他不同类型的数据库进行连接,实现跨服务器访问数据库。
在使用透明网关之前,需要先在ORACLE数据库服务器上安装透明网关软件,并配置连接信息。
配置完成后,可以在ORACLE数据库中使用透明网关来执行SQL语句,访问其他数据库服务器上的数据。
3. 使用Heterogeneous Service(非ORACLE数据库访问):在ORACLE中,可以使用Heterogeneous Service来访问非ORACLE数据库。
Heterogeneous Service是ORACLE数据库提供的一种可扩展工具,可以将ORACLE数据库与其他类型的数据库进行连接,实现跨服务器访问数据库。
使用Heterogeneous Service需要在ORACLE数据库服务器上安装相应的驱动程序,并配置连接信息。
Oracle透明网关的使用Oracle 数据库的透明网关( transparent gateway )是这样的一个接口:通过它,我们可以 sqlplus 操纵其他数据库,如 ms sqlserver 、 sybase 、 infomix 等,实现数据库的异构服务。
我一直在找 8i 的透明网关,但是没有; 9i 就有了, 9 i 连接 sqlserver 的透明网关在 9i for nt/2000 的安装盘上。
本文以 oracle 连接 sqlserver 为例,叙述一下配置的主要步骤。
网络结构服务器一: sqlserver , ip 为 147.25.8.1 , port 为 1433 ;服务器二: oracle 9i server 和透明网关, ip 为 147.25.8.11 , port 为 1521 ;服务器三: oracle server , ip 为 147.25.8.111 , port 为 1521 ;客户机: sqlnet + sqlplus ,或其他客户端软件。
安装 / 配置 oracle 9i server 和透明网关安装:在服务器二上安装 9i server for nt/2000 ,必须选择透明网关( transparent gateway for ms sqlsvr )。
在服务器二上安装 sqlsvr 的客户端程序。
配置:在服务器二上正常配置 listener , port 口为 1521 ;在服务器二上配置 listener.ora ,在 SID_LIST 中加入:( SID_NAME = SID_NAME ) --------- 自己修改( ORACLE_HOME = 《 ORACLE_HOME 》)( PROGRAM = tg4msql ) ---------- 这是透明网关的目录在服务器二上配置透明网关的配置文件(《 ORACLE_HOME 》\tg4msql\admin\initSID_NAME.ora ),明确:HS_FDS_CONNECT_INFO = “SERVER = 147.25.8.1;DATABASE = pubs”在服务器二上配置 sqlsvr 的客户连接:SERVER NAME = SERVER NAME -------- 自己修改SERVER = 147.25.8.1PORT = 1433PROTOCOL = TCP/IP SOCKET在服务器三上配置 tnsnames.ora ,加入一个 tns :MSSQL =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 147.25.8.11)(PORT = 1521)))(CONNECT_DATA =(SID = SID_NAME)) --------SID 自己修改(与上文一致)(HS = OK))测试服务器一:启动 sqlserver ,确认用户 sa 及其密码(或另外建用户、建表)。
实战篇:Oracle配置透明网关访问MySQL详细教程展开全文前言从Oracle 无法直接访问Mysql 数据库,需要配置透明网关后通过 DBLink 实现访问。
今天搞了一下午透明网关配置,流程比较复杂,并且有一些坑,这不立刻来给大家排排坑,说不定以后就用的着呢!废话不多说,直接实战走起~一、环境准备本次环境准备了 3 台主机,分别是 Oracle 数据库,MySQL 数据库,透明网关。
•⭐️ Linux 主机安装教程可参考:实战篇:VMware Workstation 虚拟机安装 Linux 系统•⭐️Oracle 单机安装教程可参考:实战篇:Linux 安装Oracle 11GR2 数据库保姆级教程•⭐️Oracle RAC 安装教程可参考:实战篇:一步步教你Linux 7 安装 Oracle 11GR2 RAC•⭐️Oracle 脚本一键安装可参考:开源项目:Install Oracle Database By Scripts!•⭐️MySQL 安装教程可参考:实战篇:手把手教你Linux安装Mysql(细致入微)❤️Oracle 安装包合集和补丁下载地址:2021年Oracle第三季度补丁合集环境信息:用途主机名IP地址主机版本数据库版本DB名称端口号Oracle 数据库orcl 10.211.55.100 RHEL7.6 11GR2 orcl 1521 MySQL 数据库mysql 10.211.55.101 RHEL7.6 8.0.26 lucifer 3306透明网关主机gateway 10.211.55.102 RHEL7.6 11GR2 无1521为什么透明网关需要单独配置一台主机?•不影响数据库主机的正常运行•便于安装配置以及管理•数据库迁移时不需要重新配置透明网关•RAC 环境下,无需重复安装配置多个节点⭐️注意:透明网关主机的配置不需要很高,无需安装 Oracle 数据库,仅安装透明网关即可!二、实战演示1、介质装备首先,需要下载 GateWay 和 MySQL ODBC安装包:•mysql-connector-odbc-8.0.27-1.el7.x86_64.rpm•p1*******_112040_Linux-x86-64_5of7.zip方便大家学习,我直接上传到百度网盘供大家下载:链接: https:///s/1ybJGu1JCbOgRbjCTqtl9TA 提取码: l0622、安装透明网关2.1、主机环境配置下载上述安装介质并上传透明网关主机:⭐️注意:安装透明网关之前需要配置环境和创建用户等等,可以参照 Linux 安装单机 Oracle 的环境配置步骤,这里就不再详述了!使用 Oracle 一键安装脚本配置即可:cd /soft./OracleShellInstall.sh -i 10.211.55.102 -txh Y⭐️注意:由于主机安装时选择了最小化安装,并且安装透明网关需要图形化,因此加上 -txh Y 安装图形化界面!稍许等待几分钟之后,即可配置完成,由于没有上传DB 安装包,这个报错是正常!2.2、正式安装主机配置完成后,开始安装透明网关:## 首先 root 用户下,授权 oracle 访问 /soft 目录chown -R oracle:oinstall /soft## 切换到 oracle 用户下su - oracle## 解压透明网关安装包unzip -q p1*******_112040_Linux-x86-64_5of7.zip ## 配置 vnc 访问图形化界面vncserver使用 VNC 客户端连接:开始安装:确认安装位置:这里选择 for ODBC 即可:开始安装,静待结束:root 用户下执行 root.sh 脚本:/u01/app/oraInventory/orainstRoot.sh/u01/app/oracle/product/11.2.0/db/root.sh配置监听:至此,透明网关安装结束!2.3、安装 mysql-connector首先需要安装 unixODBC 依赖,否则报错:安装 unixODBC 依赖后安装 mysql-connector:yum install -y unixODBC*rpm -ivh mysql-connector-odbc-8.0.27-1.el7.x86_64.rpm⭐️注意:透明网关的安装到这里就全都结束了,接下来就是配置部分了。
透明网关的安装和配置1、运行Oracle Installation Products Universal Installer进行透明网关组件的安装2、选择自定义3、选择要安装的透明网关4、系统提示配置5、查看C:oracleora92tg4msqladmin目录6、修改C:oracleora92tg4msqladmininittg4msql.ora7、修改C:oracleora92networkadminlistener.ora,增加8、修改C:oracleora92networkadminTnsname.ora,增加9、重新启动侦听服务10、测试解析状态11、创建数据库链接12、察看数据库链接13、测试透明网关配置的疑难问题配置过程遇到的异常情况:解决过程,请检查以下参数Listener.oraPROGRAM必须为tg4msqlSID_NAME为gateway_sid,也就是说单个透明网关情况下一定是tg4msql,即inittg4msql.ora 的名字部分去掉init即可,呵呵Tnsnames.oraSID为Listener.ora中的SID_NAMETNS的名称可以随便进行配置。
至于以下这两个区别,我到现在也没搞明白HS_FDS_CONNECT_INFO="SERVER=local;DATABASE=northwind"HS_FDS_CONNECT_INFO=host.northwind多个透明网关的配置1、把inittg4msql.ora复制并修改名称为inittg4msql2.ora2、修改C:oracleora92tg4msqladmininittg4msql2.ora只修改第一行,服务器和数据库名即可3、修改C:oracleora92networkadminlistener.ora,增加如下注意SID_Name的变化4、修改C:oracleora92networkadminTnsname.ora,增加然后和单个透明网关配置一样,重新启动监听,创建数据库链接,测试。
Oracle 10g Gateways的安装配置过程第一章Gateways安装1、Gateways安装环境a)Gateways可以安装在Oracle服务器上,也可以安装在SQL Server服务器上。
在理论在来说,可以安装在任何一台安装了Oracle数据库软件的机器上,可以不创建数据库。
b)安装Gateways的机器只是一个中转站,客户端连接此机器的监听服务。
2、解压缩Gateways安装包,点击Setup.exe3、开始安装界面,点击下一步4、指定安装目录,点击下一步。
注意此处一定要与Oracle安装目录一致。
5、选择安装组件for sql server,点击下一步。
有些机器可能出现,下图的错误,可能是本机Oracle数据库安装或配置有问题。
6、输入SQL Server服务IP及数据库名称,点击下一步。
此处参数可以不输入,后期再修改也可以。
7、开始安装,安装过程图8、安装结束第二章Gateways配置1、打开Windows资源管理器,找到目录D:\oracle\product\10.2.0\db_1\tg4msql\admin,将inittg4msql.ora文件修改成你需要的文件名initMSSQL.ora,其它MSSQL为连接SQL Server的代理名称,也是要与监听的SID保持一致。
如果你需要创建连接多个SQL Server数据库,可以创建多个init***.ora文件。
参数配置说明:HS_FDS_CONNECT_INFO="SERVER=192.168.1.10;DATABASE=maitainManHour"HS_FDS_TRACE_LEVEL=OFFHS_FDS_RECOVERY_ACCOUNT=RECOVERHS_FDS_RECOVERY_PWD=RECOVER其中:192.168.1.10为SQL SERVER数据库的IP地址maitainManHour为数据库名称其它参数不需要修改。
1、oracle连接db2的方法2、在db2中建立到远程db2数据库的连接;(1)选择配置助手,选择使用向导添加数据库——搜索网络,依照选项添加必要的信息即可。
3、下一步后系统名称:ip地址主机名称:ip地址节点名称:数据名称假如上面的方法连接不上服务器上的数据库能够用下面的方法(我一样用下面的方法) //连接服务器数据库db2 catalog tcpip node db2_hnld remote 10.74.132.27 server 50000 remote_instance db2 system Db2Server ostype windb2_hnld:节点名称10.74.132.27 :IP地址win:系统db2 catalog database wlctr as wlctrld at node db2_hnldwlctr:服务器数据名称wlctrld :本地标示db2_hnld :节点名称4、在odbc中建立到本机db2的连接,此处名字需要记住;5、在oracle进行如下配置:先配置oracle到odbc的初始化信息,看是否有inithsodbc.ora那个文件,一样默认安装都有;建立文件inithsdb.ora,名字能够为其他,假如通过odbc建立到多个db2的连接,能够在建几个init***.ora的文件,需要注意的是,WLCTR要与ODBC中的名字一致(下面的linster.ora、tnsnames.ora在D:\oracle\ora92\network下)修改linster.ora 文件,注意修改SID_NAME 与init***.ora中“*”的名字一致;(SID_DESC =(SID_NAME = mytest)(ORACLE_HOME = D:\oracle\ora92)(PROGRAM = hsodbc))修改tnsnames.ora;TEST =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) )(CONNECT_DATA =(SID = mytest))(HS = OK))在plsql中建立data_link,命令如下:create database link ora2sql connect to "用户名" identified by "密码" using 'TEST';需要注意的是,DB2的用户名、密码那个地点需要用双引号,否则显现用户名、密码无效的错误。
oracle透明网关-dblink直接访问异构数据库透明网关是oracle的一个中间件工具,作用是实现oracle下通过dblink直接访问非oracle数据库的作用,这也意味着可以实现数据同步。
透明网关版本号须和oracle版本一致最好,目前免费,支持的异构数据库有sqlserver informix sysbase,详细的可参考对应版本的说明。
需到官网单独下载,单独安装,有win版本也有linux版本,可以安装在oracle所在主机,也可以安装在单独的主机,配置上可以参考官网使用指南。
配置上:透明网关里1配好到异构数据库的连接信息(connect info),2配好对连接信息的监听(sid);oracle里1配置好"指向网关主机sid的tns",2监听无需变动;配置完毕,首先检查下open_links,##########open_links beginopen_links是oracle的一个参数,你可以通过sql select * from v$parameter / 命令行show parameter open_links 查看open_links和open_links_per_instance 的值即可。
在v$parameter中也有open_links的英文定义:max # open links per session就是每个回话最多更开的连接,如果你需要10个dblink,那么这个值就需要修改,修改语句如下:alter system set open_links = 255 scope =spfile;alter system set open_links_per_instance = 255 scope =spfile;然后重启下数据库生效。
##########open_links endopen_links没问题后,注意设置杀软和防火墙规则允许网关和oracle通讯,随后需要建立到"指向网关主机sid的tns"的dblink,在建立dblink前先看下已有的透明网关,防止重名:select * from dba_objects where object_type = 'DATABASE LINK';想删除用:drop public database link xxx;然后就是建立到"指向网关主机sid的tns"的dblink,建立的语句范例如下:create public database link nm1500car3gdb connect to "ccpqry" identified by "ccpqry" using 'nm1500car3gdb'; 注意tns 是单引号,ccpqry是异构库的验证,注意用户名和密码用双引号。
Oracle下配置透明网关访问MSSQLSERVERHow to Setup TG4MSQL (Transparent Gateway for MS SQL Server)PURPOSE-------This article provides a step-by-step guide setting up and troubleshootingTG4MSQL (Transparent Gateway for MS SQL Server) for a Windows basedplatform. This note applies to TG4MSQL release 9.2, 10.1 and 10.2.SCOPE & APPLICATION-------------------This bulletin is a summary of the manual.How to setup TG4MSQL--------------------1) -------安装软件 transparent gateway-For Oracle TG4MSQL V9, V10.1:With the OUI (Oracle Universal Installer) installTG4MSQL. This product is part of the serverinstallation CDs.( Start OUI, choose a sep. Oracle_Home, select the Oracledatabase for installation. Then choose custom install. Aproduct list pops up where you have to scroll down toORACLE TRANSPARENT GATEWAY; click on the '+' in frontanda product list opens. Choose the gateways you want to install)-For Oracle TG4MSQL V10.2:There is a separate CD containing Oracle Transparent Gatewayfor MS SQL Server release 10.2. It is included on the CDwith part number B24558-01. ---oracle 10.2的透明网关在另外的安装盘上(gateways),需要另外安装-BOTH:A directory called TG4MSQL will be created and a file calledTG4MSQL.EXE is placed in the bin directory of the appropriate ---与sql 的网关在目录tg4msql中Oracle_Home.----确认tg4msql需要的表存在 SYS.HS_FDS_CLASS2) TG4MSQL needs data dictionary tables in the Oracle database.To check their existence, run a query oni.e. SYS.HS_FDS_CLASS.If it fails, run the caths.sql script located in ORACLE_HOME\RDBMS\ADMIN\as user sys or internal.----确认相应的驱动存在3) The gateway is using MS ODBC driver to access the SQl Server.So please make sure to have the MS SQL Server ODBC driver installed onthe gateway machine. If it is not available, downloadthe latest MDAC Microsoft Data Access Components) from the Microsoft Webpage and install it. This package contains a SQL Server ODBC driver.----配置tnsnames.ora ,如sid为tg4msql4) Tnsnames.ora.This file is in ORACLE_HOME\NETWORK\ADMIN.Add the following lines to the file:/doc/0944421c10a6f524ccbf85b7.html = |<- adjust default domain depending onthe sqlnet.ora settings(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=) |<- adjust hostname(PORT=1521)) |<- adjust port(CONNECT_DATA=(SID=tg4msql))(HS=OK) |<- attention: HS is outside CONNECT_DATA)*************************************************************** *************如:tg4msql =(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cit-jiangqx)(PORT=1521))(CONNECT_DATA=(SID=tg4msql)) ----sid为listener.ora中添加的sid,并与initsid.ora中的sid相同如tg4msql(HS=OK))*************************************************************** *************Note, a sample file is located in ORACLE_HOME\tg4msql\ADMIN.COMMON ERRORS:Make sure, that there are 2 closing brackets after the SID; the HS keyword is outside of the Connect Data block.Further make sure that only the TNS Alias is at the first position of theline; all other lines must start at least with one SPACE (blank);otherwise it is identified as an alias and the configuration is not correct.----配置listener.ora 如 tg4msql5) Listener.ora:This file is in ORACLE_HOME\NETWORK\ADMIN as well.Add the following line to the SID_List of the listener.ora and restart thelistener afterwards. ( After the restart a service handler for tg4msqlshould exist).(SID_DESC=(SID_NAME=tg4msql)(ORACLE_HOME=e:\ora92) |<- adjust Oracle_Home directory(PROGRAM=tg4msql))*************************************************************** *************如:SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = ora10g)(ORACLE_HOME = F:\oracle\product\10.2.0\db_1)(SID_NAME = ora10g))(SID_DESC=(SID_NAME=tg4msql)(ORACLE_HOME=F:\oracle\product\10.2.0\db_1)(PROGRAM=tg4msql) --这里是透明网关的目录))*************************************************************** *************Note, a sample file is located in ORACLE_HOME\tg4msql\ADMIN.COMMON ERRORS:After configuring the listener, restart it from the command line(lsnrctl -> stop, start) and check the service summary. It must contain1 service handler for the TG4MSQL SID.---配置ORACLE_HOME\TG4MSQL\ADMIN 下面的initsid.ora 文件,网关配置文件如 inittg4msql.ora6) Adjust the configuration file of the gateway. It is located inORACLE_HOME\TG4MSQL\ADMIN. The name depends on the SID you use for thegateway.In our sample the listener SID is tg4msql and so the configuration filemust be named inittg4msql.ora.# This is a sample agent init file that contains the HS parameters that are# needed for an ODBC Agent.## HS init parameters#HS_FDS_CONNECT_INFO = . |<- Please specify the serverhostname and do not useIP addresses.The dot is the delimeterand we use it to separatethe servername from thedatabase name.HS_FDS_TRACE_LEVEL = 0 |<- trace levels are from off to debug****************************************************************************如:HS_FDS_CONNECT_INFO=cit-jiangqx.testdbHS_FDS_TRACE_LEVEL=OFFHS_FDS_RECOVERY_ACCOUNT=RECOVERHS_FDS_RECOVERY_PWD=RECOVER*************************************************************** ***********REMARK: Usually the following key is used to verify the connect optionsto the MS SQL Server:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectT oThis information normally specifies the ALIAS, the real server name, instances(if they are available) and port numbers of the SQL Server.Further details can be found in Note 231997.1 TG4MSQL and MS SQLServer Instances.---建立db link ,测试是否成功?7) Testing the connectivity between Oracle database and the SQL Server:- create a database link within the Oracle database to the SQL Server:create database link tg4msql connect to "sa"identified by "" using 'tg4msql';- select * from all_catalog@tg4msql;Example selecting a demo table of the MS Northwind database:select "TerritoryID" from "EmployeeTerritories"@;*************************************************************** ***********如: -----注意用户名/密码的大小写create database link tg4msql connect to "sa" identified by "sqlsa" using 'tg4msql';SQL> select * from test@tg4msql;c1 c2---------- --------------------3 c*************************************************************** ***********COMMON ERRORS:The usernames, passwords, table names, views, columns ... are case sensitive.For creating the database link, make sure you surround the username, passwordby double quotes and write them as they are defined in the MS SQL Server.Another common error is, that the TG4MSQL does not allow OS Authentication(Windows Authentication) for the SQL Server. Only SQL Server authenticationwith a username AND a password is supported. Make sure, that the SQL ServerSecurity option is checked to allow both authentication methods.。
Oracle9i、10g访问Sql Server透明网关相应的配置2009-12-01 12:241 引言日前一个项目需要从省调及各地调汇总信息,浏览查看并可能会修正,最终生成E文件并上报。
这里每天同步抽取数据时需要用到多台服务器多种类型数据库的数据,其中许多字段都是来自多个数据库的数据,数据源有Oracle和SqlServer 的,数据字段多计算复杂且时间紧迫,若在应用程序里写程序无疑工作量不小,若是在Oracle直接访问各个数据工作量会减轻许多,众所周知在Oracle下访问同构数据库只需配置数据库连接(Database Link)即可,但访问异构型数据库直接这样就不行了。
不同数据库平台的互连一般称之为数据库的异构服务,现在各大数据库之间都可以实现这样的异构互连,只是各厂商的具体实现技术不一样,如:在SQL SERVER 里面叫做链接服务器(LINKED SERVER)(在企业管理器->连接到将宿主该链接的SQL Server 计算机。
在树窗格中,展开"安全性"文件夹即有"链接服务器"),通过ODBC 的 Microsoft OLE DB 提供程序实现与其它数据库的互联;当然也提供了专用于 Oracle 2.6 版的 Microsoft OLE DB 提供程序和用于IBM DB2 的Microsoft OLE DB 提供程序等。
而ORACLE实现异构服务的技术叫做透明网关(Transparent Gateway),当然之前ORACLE还采用过通用连接技术。
目前ORACLE利用透明网关可以实现和SQL SERVER、SYBASE、DB2等多种数据库的互联。
透明网关的体系结构也很简单,在ORACLE和SQL SERVER之间使用ORACLE透明网关服务器实现互连互通,其中透明网关服务器可以与ORACLE或SQL SERVER数据库在同一台主机上,也可以是在独立的一台主机上。
Oracle Gateway(透明网关) for DB2(ODBC方式)
一、本机(win7 64位)上的Oracle 访问本机上的DB2 数据库
软件环境说明:
1、Oracle数据库版本11.2 ,
2、DB2 数据库版本10.5;
使用ODBC方式需要先确认Oracle 安装了dg4odbc 驱动(Oracle 11g中是默认安装的),确认方式是在cmd里执行dg4odbc,如下:
C:\Documents and Settings\Administrator>dg4odbc
Oracle Corporation --- 星期五12月30 2011 15:48:17.211
Heterogeneous Agent Release 11.2.0.1.0 - Production Built with
Oracle Database Gateway for ODBC
步骤:
1、分别在ODBC数据源管理器的用户DNS和系统DNS中添加IBM DB2 ODBC DRIVER
– DB2COPY1驱动
最终的结果是在控制面板->管理工具->数据源->用户DNS和系统DSN中可以看到下图所示内容:注意下面配置过程中要使用的数据源名称是db2admin,切记!!!
2、配置初始参数文件,该文件要创建在$ORACLE_HOME\hs\admin 下,命名一定是initdb2admin.ora(因为我们要创建对db2admin的访问),该文件的内容如下:
# This is a sample agent init file that contains the HS parameters that are
# needed for the Database Gateway for ODBC
#
# HS init parameters
#
HS_FDS_CONNECT_INFO = db2admin ----关键,一定是这个命名,因为是要对db2admin 这个ODBC数据源进行访问
HS_FDS_TRACE_LEVEL = debug
HS_TRANSACTION_MODEL=SINGLE_SITE_AUTOCOMMIT
HS_FDS_SUPPORT_STATISTICS=FALSE
#
# Environment variables required for the non-Oracle system
#
#set <envvar>=<value>
3、配置监听参数文件listener.ora,该文件在$ORACLE_HOME\network\admin ,下面是我的listener.ora文件里的内容:
# listener.ora Network Configuration File: d:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = db2admin) ----关键,一定是这个命名
(ORACLE_HOME = d:\oracle\product\11.2.0\dbhome_1)
(SID_NAME = db2admin) ----关键,一定是这个命名
(PROGRAM=dg4odbc) ----关键,一定是这个命名
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = wfpc197)(PORT = 1521))
)
ADR_BASE_LISTENER = d:\oracle\product\11.2.0\dbhome_1\log
4、为Gateway访问配置数据库(编辑tnsnames.ora),该文件在$ORACLE_HOME\network\admin 下,我的tnsnames.ora内容:
#tnsnames.ora Network Configuration File: d:\oracle\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
DB2= ----自由命名
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =wfpc197)(PORT = 1521))
(CONNECT_DATA = (SID =db2admin) ----关键,一定是这个命名
)
(HS=OK)----关键,一定是这个命名,说明该数据源是非Oracle的
5、重启监听、测试db2数据源:分别执行lsnrctl stop lsnrctl start lsnrctl status tnsping db2其中lsnrctl status 结果如下:
C:\Documents and Settings\Administrator>lsnrctl status
LSNRCTL for 32-bit Windows: Version 11.2.0.1.0 - Production on 30-12月-2011 16:1
6:42
Copyright (c) 1991, 2010, Oracle. All rights reserved.
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=wfpc197)(PORT=1521))) LISTENER 的STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 11.2.0.1.0 - Produ
ction
启动日期 29-12月-2011 21:36:31
正常运行时间 0 天18 小时40 分10 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 d:\oracle\product\11.2.0\dbhome_1\network\admin\listen
er.ora
监听程序日志文件 d:\oracle\product\11.2.0\dbhome_1\log\diag\tnslsnr\wfp
c197\listener\alert\log.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=wfpc197)(PORT=1521)))
服务摘要..
服务"db2admin" 包含 1 个实例。
实例"db2admin", 状态UNKNOWN, 包含此服务的1 个处理程序...
服务"wfdb" 包含 1 个实例。
实例"wfdb", 状态READY, 包含此服务的1 个处理程序...
服务"wfdbXDB" 包含 1 个实例。
实例"wfdb", 状态READY, 包含此服务的1 个处理程序...
命令执行成功
tnsping db2的结果如下:
C:\Documents and Settings\Administrator>tnsping db2
TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 30-12月-
2011 16:19:11
Copyright (c) 1997, 2010, Oracle. All rights reserved.
已使用的参数文件:
d:\oracle\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
已使用TNSNAMES 适配器来解析别名
尝试连接(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =wfpc197)(PORT = 1521))
(CONNECT_DATA = (SID =db2admin)) (HS=OK))
OK (30 毫秒)
6、创建Oracle dblink并查询测试
登录到sqlplus上,sqlplus / as sysdba ,执行create public database link mylink connect to db2admin identified by db2admin using 'DB2' --其中db2admin是DB2 数据库的用户名,db2admin是DB2 数据库的密码,'DB2'是tnsnames.ora中定义好的。
这几个值都不是明确的。
下面是select测试及结果
SQL> select count(*) from db.tbhm01@mylink;
COUNT(*)
----------
41473。