在Oracle数据库中连接异种数据源Word格式文档下载.docx
- 文档编号:16807321
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:19
- 大小:384.50KB
在Oracle数据库中连接异种数据源Word格式文档下载.docx
《在Oracle数据库中连接异种数据源Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《在Oracle数据库中连接异种数据源Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
1.安装HS部件。
缺省情况下,HS服务是和Oracle8.1.7一起安装的,你可以查询SYS用户下是否存在HS_BASE_CAPS视图,以确认HS部件是否安装,如果没有可以用相关的安装盘进行安装。
2.配置ODBC系统连接字。
在控制面板选择“DataSources(ODBC)”,在“系统DNS”内配置ODBCforSQLServer连接字(dnsora2sql)。
3.配置tnsnames.ora,它位于ORACLE_HOME\NETWORK\ADMIN。
在这个文件中增加如下代码:
Lnk2sql=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=HOSTNAME)(PORT=1521)))
(CONNECT_DATA=
(SID=hs4sql)|<
服务的SID名称,要和Listener里配置的sid相同)
(HS=OK)|<
打开HS服务选项
)
4.配置listener.ora,它位于ORACLE_HOME\NETWORK\ADMIN。
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=hs4sql)|<
服务的SID名称,与tnsname名称相对应
(ORACLE_HOME=C:
\oracle\ora9201)
(PROGRAM=hsodbc)|<
要使用的HS服务程序,如果使用OLEDB,程序名为hsole)
5.重新启动Oraclelistener。
6.编辑位于ORACLE_HOME\HS\ADMIN内init.ora,这里是iniths4sql。
修改如下两行代码:
HS_FDS_CONNECT_INFO=dnsora2sql|<
ODBC系统名
HS_FDS_TRACE_LEVEL=0
7.创建DATABASELINK。
createdatabaselink‘ora2sql’connecttosql1identifiedbysql1using‘lnk2sql’;
8.测试连接。
如:
SQL>
select*fromregion@ora2sql;
到此我们已经完成了使用ODBC连接SQLSERVER的配置工作。
总体上说,异构服务扩展了Oracle数据库连接异种数据源的能力,加强了企业数据的整合,是一个快速有效经济地整合企业内部异构数据的解决方案。
ORACLE连接ODBC
不同数据库平台的互连一般称之为数据库的异构服务,现在各大数据库之间都可以实现这样的异构互连,只是各厂商的具体实现技术不一样,如:
在SQLSERVER里面叫做LINKEDSERVER,通过ODBC实现与其它数据库的互联。
而ORACLE实现异构服务的技术叫做透明网关(TransparentGateway),当然之前ORACLE还采用过通用连接技术。
目前ORACLE利用透明网关可以实现和SQLSERVER、SYBASE、DB2等多种数据库的互联。
透明网关的体系结构也很简单,在ORACLE和SQLSERVER之间使用ORACLE透明网关服务器实现互连互通,其中透明网关服务器可以与ORACLE或SQLSERVER数据库在同一台主机上,也可以是在独立的一台主机上。
本文ORACLE或SQLSERVER数据库在同一台主机上;
1、在SQLSERVER数据库上创建测试账号和表
这里我用的是wust-dbwh的dbmin数据库,账号zhang,密码zhang
2、我测试所用数据库和透明网关是在同一台机器上,在我本机:
wust-dbwh,透明网关在oracle默认安装时是不安装的,所以如果你想用需要选择这一选项。
3、安装透明网关forsqlserver的软件后,可以在$ORACLE_HOME下看到tg4msql目录,编辑$ORACLE_HOME/tg4msql/admin/inittg4msql.sql文件确认这一行正确:
HS_FDS_CONNECT_INFO="
SERVER=wust-dbwh;
DATABASE=dbmin"
4、修改透明网关server上的listener.ora,在SID_LIST中加入以下内容:
(SID_DESC=
(SID_NAME=dbmin)#SID自己命名
(ORACLE_HOME=D:
\oracle\ora92)
(PROGRAM=tg4msql)
)
5、在oracleserver上的tnsnames.ora中加入到透明网关的tnsname,内容如下:
sql2k=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=wust-dbwh)(PORT=1521))
#此处HOST填的是透明网关SERVER的地址
(CONNECT_DATA=(SID=dbmin))
#此SID应和透明网关SERVER上设定的SID相同
(HS=OK)
6、修改ORACLESERVER的初始化参数,将global_names设为false,因为我们并不使用GLOBALNAME。
然后重起数据库。
oracle9i和oracle8i都可以在DBA用户下用SQL命令改变global_names参数:
altersystemsetglobal_names=false;
7、现在在ORACLESERVER上创建DBLINK就可以了。
下面实验数据:
注意:
1.在 tg4msql\admin下创建 init<
orasid>
.ora文件,本文为initdbmin.ora,否则后面提示出错
initdbmin.ora文件内容:
-----------------------------------
#ThisisasampleagentinitfilethatcontainstheHSparametersthatare
#neededfortheTransparentGatewayforSQLServer
#
#HSinitparameters
SERVER=WUST-DBWH;
DATABASE=DBMIN"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
2.新创建的用户可能不能创建publicdatabaselink,只能databaselink
MicrosoftWindows2000[Version5.00.2195]
(C)版权所有1985-2000MicrosoftCorp.
C:
\DocumentsandSettings\Administrator>
tnspingdbmin
TNSPingUtilityfor32-bitWindows:
Version9.2.0.1.0-Productionon25-5月-200622:
23
Copyright(c)1997oracleCorporation.Allrightsreserved.
已使用的参数文件:
D:
\oracle\ora92\network\admin\sqlnet.ora
TNS-03505:
未能分解名称
tnspingsales
10
已使用TNSNAMES适配器来解析别名
Attemptingtocontact(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=
st-dbwh)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=sales)))
OK(3700毫秒)
tnspingsql2k
34
st-dbwh)(PORT=1521)))(CONNECT_DATA=(SID=dbmin))(HS=OK))
OK(160毫秒)
sqlplus/nolog
SQL*Plus:
Release9.2.0.1.0-Productionon星期四5月2522:
56:
042006
Copyright(c)1982,2002,oracleCorporation.Allrightsreserved.
connsystem/zhangassysdba
已连接。
altersystemsetglobal_names=false;
系统已更改。
createuserzhangidentifiedbyzhang;
用户已创建
grantconnecttozhang;
授权成功。
grantresourcetozhang;
connzhang/zhang
createpublicdatabaselinkdbminconnecttozhangidentifiedbyzhangusing'
sql
;
createpublicdatabaselinkdbminconnecttozhangidentifiedbyzhangusing'
sql2k'
*
ERROR位于第1行:
orA-01031:
权限不足
createdatabaselinkdbminconnecttozhangidentifiedbyzhangusing'
数据库链接已创建。
select*fromweb_url2@dbmin;
select*fromweb_url2@dbmin
orA-28500:
连接orACLE到非oracle系统时返回此信息:
[TransparentgatewayforMSSQL][H006]Theinitparameter<
HS_FDS_CONNECT_INFO>
isnotset.Pleasesetitininit<
.orafile.
orA-02063:
紧接着2lines(源于DBMIN)
IPURLID
--------------------------------------------
202.12.233.21CBC1
195.151.121.71CD2
141.149.177.170CNC3
167.206.61.82CPCJC4
68.113.196.147CPCWCWC5
211.108.90.5CWPL6
65.214.36.112IGJMLHK7
217.80.211.122NABABD8
67.80.131.81NB9
24.235.1.74NBC10
62.142.14.168NBCWB11
216.234.54.14NBDBDBN12
216.140.123.22NOPBCTWUL13
206.135.153.222NP14
212.88.94.106NP15
66.148.230.30NPN16
207.1.106.202NQ17
202.12.233.21PW18
213.194.40.21TAIB19
66.147.154.3TSVRIJLMHKGEF20
198.26.74.100TW21
已选择21行。
很多朋友问到关于透明网关的一些问题,在此加以说明如下:
1、OracleForSQLServer的透明网关在UNIX下无法实现,目前只支持WIN;
原因很简单,SQLServer本身不支持UNIX,所以Oracle也无法直接在UNIX下访问SQLServer。
2、OracleFor其它数据库的透明网关,如SYBASE等有UNIX本版本的数据库在UNIX可以实现。
3、Oracle透明网关软件在Oracle8i时是需要花钱另买的,大约1万$;
到Oracle9i时是作为数据库的一个组件免费发布的。
安装时在组件种选择即可。
4、针对我们的实际应用,如果有需要实现Oracle到SQLServer的互连,我们需要另外用一台WIN下的Oracle9i来做透明网关服务器,其它UNIX下的Oracle通过这个透明网关来访问SQLServer。
5、不同数据库间的数据处理需使用标准SQL来实现。
6、各数据库中特殊的数据类型,需要在程序中实现转换,应尽量避免使用无法转换的数据类型。
ORACLE与各类数据库的连接配置方法
连接oracle
一,建立服务名
二,建立dblink
createpublicdatabaselinkDBLINK_ORASOUCE
connectto"
username"
identifiedby"
password"
using'
tnsnames.ora文件中的服务名'
连接sqlserver
先安装:
OracleTransparentGatewayforMicrosoftSQLServer9.2.0.1.0
安装完毕后会在..oracle\ora92目录下新增一个tg4msql目录,然后编辑
。
oracle\ora92\tg4msql\admin目录里面的inittg4msql.ora文件:
SERVER=10.120.10.139;
DATABASE=数据库名"
然后更改。
:
\oracle\ora92\network\admin目录下的listener.ora文件(红色为增加的地方)
#LISTENER.ORANetworkConfigurationFile:
E:
\oracle\ora92\network\admin\listener.ora
#GeneratedbyOracleconfigurationtools.
LISTENER=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))
)
(ADDRESS=(PROTOCOL=TCP)(HOST=drpxy01)(PORT=1521))
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=PLSExtProc)
(ORACLE_HOME=E:
(PROGRAM=extproc)
(GLOBAL_DBNAME=ETLSVR.TEPCO.NCPG)
(SID_NAME=ETLSVR)
(SID_NAME=tg4msql)
(PROGRAM=tg4msql)
(ORAC。
\oracle\ora92\network\admin目录下的tnsnames.ora文件,增加一个服务名
SQLSERVER.TEPCO.NCPG=
(ADDRESS=(PROTOCOL=TCP)(HOST=10.120.6.1)(PORT=1521))
(CONNECT_DATA=
(SID=tg4msql)
(HS=OK)
然后重新启动listener服务;
连接sybase
先安装sybase
安装完毕后打开
出现成功提示框就行了
然后建立odbc数据源
好了,用access连着测试一下;
然后在..\oracle\ora92\hs\admin目录下增加文件
initsybase1.ora的内容为
#neededforanODBCAgent.
HS_FDS_CONNECT_INFO=hisdb1
HS_FDS_TRACE_LEVEL=0
#Environmentvariablesrequiredforthenon-Oraclesystem
#set<
envvar>
=<
value>
然后修改E:
\oracle\ora92\network\admin目录下的listener.ora
#GeneratedbyOracleconf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 数据库 连接 种数