Oracle11g连接SQLServer2008实战演练 完整版本
- 格式:doc
- 大小:979.55 KB
- 文档页数:24
连接SQLServer2008数据库的方法一、设置SQLServer2008:SQL server 2008 1433端口开启解决方案查看电脑开放端口命令为:netstat -anSQL Server 2008一般默认的端口为 1433 ,但有时会遇到无法连接端口1433的问题,检查端口1433是否启用的方法为:开始–>输入cmd –>回车–>telnet localhost 1433->回车出现黑屏,表示本机连接端口1433成功。
否则按照以下顺序进行配置:(1)关闭数据库引擎打开配置管理器,找到 SQL Server(SQEXPRESS),右键单击,选择停止,即可停止数据库引擎(2) .配置服务器端和客户端的TCP/IP协议:在SQL Server网络配置中选择SQLEXPRESS的协议,选择TCP/IP ,右键单击,选择属性选择IP 地址选项卡把"IP1"和"IP2"中"TCP端口"为1433,"已启用"改为"是"把“IP地址”下“IPALL”的端口改为“1433”。
(3)SQL Native Client 10.0 配置->客户端协议->TCP/IP(4).开启数据库引擎这样就开启了1433的端口了先停止SQLServer2008服务。
1.启用1433端口S1:执行“配置工具”下的“SQL Server配置管理器”。
打开如下窗口:S2:右击“SQL Server网络配置”右边的“TCP/IP”,从快捷菜单中选择“属性”,打开下图所示窗口2.设置登录方式(使用SQL Server登录方式,而不是Windows方式)打开“SQL Server Management Studio”,打开如下图所示快捷菜单,选择“属性”3.在windows防火墙中的“例外”选项卡中添加1433端口在控制面板中打开windows防火墙,选择“例外”选项卡,单击“添加端口”,在打开的对话框中按下图输入:4.检查端口1433是否启用的方法为:开始–>输入cmd –>回车–>telnet localhost 1433->回车出现黑屏,表示本机连接端口1433成功。
oracle连接ODBCsqlserver数据源的详细步骤⼀. 添加数据源ODBC1.打开数据源或者2.添加数据源3.选择SQL Server4.名称:输⼊ODBC数据源名称描述:随意服务器:输⼊sqlserver服务器名5.SQLSERVER登陆⽤户:登录ID⼀般是:sa ;密码:只有你知道6.选择你连接的数据库7.完成8.测试⼀下⼆.检查DG4ODBC驱动是否已经安装⽅法如下:在Oracle服务器上,cmd窗⼝中执⾏命令(dg4odbc或hsodbc)上图代表安装了DG4ODBC驱动(如果没有安装,需⾃⾏下载安装,此处不介绍具三.配置hsodbc此⽬录下默认存在initdg4odbc.ora,复制这个⽂件,粘贴到上图⽬录中,并将后复制的⽂件改名为initdddb.ora,⽤记事本打开就该配置并保存如下图四.配置监听listener(服务端透明⽹关监听)五.重启监听在命令提⽰符窗⼝依次输⼊如下命令停⽌监听:lsnrctl stop启动监听:lsnrctl start六. 配置TNS(客户端服务命名)DDDB:本地oracle服务命名HOST:oracle服务器IPPORT:监听端⼝SID:刚才命名的SID配置七.创建oracle的DBLINK或者不创建第六步,直接创建DBLINKcreate public database link test_sql connect to “sqlserver⽤户名” identified by “sqlserver密码” using ‘(description=(address= (protocol=tcp)(host=xxx.xxx.xxx.xxx)(port=1521))(connect_data=(SID=SID名称))(HS=OK))';⼋.查询select * from 表名@Test_Sqlgetaway到此这篇关于oracle连接sqlserver数据源ODBC的详细步骤的⽂章就介绍到这了,更多相关oracle sqlserver数据源ODBC内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
ADO连接数据库及vs2008项目的运行:(VS2008+ORACLE11g)1.声明一个Connection的对象2.构造连接字符串:_bstr_t str_connect=_T("Provider=MSDAORA.1;Persist Security Info=True;User ID=system;Password=123456;Data Source=orcl");在这里想讨论的就是Data Source这个参数在本地数据库(orcl.168.0.2)时,我写了Data Source=orcl.168.0.2;然后应用程序报错:orcl-12154;这时使用PL/SQL能正常连接到数据库,就是说tnsname没有问题,那么问题在哪?在网上找了两个多小时,最后写成DataSource=orcl.168.0.2问题解决了。
既然在本地解决了,那么我肯定还想远程连接啊!移到局域网内另一个机器出错:ora-12560,适配器错误,这是怎么回事呢?然后又在网上查,不停的想那个DataSource的含义,分开写和合在一起有什么区别呢?然后就想,客户端要安装Oracle_client才能远程连接数据库,那么这个DataSource的含义可能是:DataSource这个单词代表的是本地数据库的全局名,而Data Source则应该是tnsname,即服务名,那么在客户端就配置tnsname为orcl,然后程序中写为:Data Source=orcl;测试之后,成功。
本地,远程均可访问数据库。
(要求:在本地和客户端主机上均有Oracle_Client程序,这样才可以配置tnsname)同时,在VS2008中生成的应用程序安装在没有安装08的机器上时,会报出:“应用程序配置不正确,无法正常启动”的错误,这是因为动态链接库的问题解决方法是:项目--->属性---->配置属性--->常规---->MFC的使用,设置为在静态库中使用MFC,这样就可以了。
Oracle使⽤dblink连接SqlServerOracle使⽤dblink连接SqlServer使⽤场景:当你需要从ORACLE数据库上访问另⼀台SqlServer数据库的数据时,Oracle提供了⼀个⼯具:gateways。
通过这个⼯具,你可以创建dblink来连接sqlserver或其他不同公司的数据库----取决于你安装时的选项。
安装GATEWAYS后,使⽤下列2种⽅式可创建DBLINK⽅式A:create database link bslinkconnect to "username" identified by "password"using '( DESCRIPTION =( ADDRESS = ( PROTOCOL = TCP )( HOST = remoteIP )( PORT = 1433 ))( CONNECT_DATA = (SID = SQLSERVER数据库名 ) ) ( HS=OK ) ) '这种⽅式是不需要配置initdg4msql.ora和tnsnames.⽅式B:1. 在$ORACLE_HOME/dg4msql/admin/initdg4msql ----这步可省略使⽤⽅式A替代配置initdg4msql.ora,以我的例⼦,如下: ******************************复制代码This is a customized agent init file that contains the HS parametersthat are needed for the Database Gateway for Microsoft SQL ServerHS init parametersHS_FDS_CONNECT_INFO=[192.168.101.4]//bsdata ----只需要修改这个IP//数据库名HS_FDS_TRACE_LEVEL=OFFHS_FDS_RECOVERY_ACCOUNT=RECOVERHS_FDS_RECOVERY_PWD=RECOVER复制代码2. 配置Oracle主⽬录下network\admin⽬录下的listener.ora。
SQLServer链接服务器访问Oracle一、测试环境说明操作系统:Windows Server 2008 R2 64位数据库版本:SQLServer 2008 R2 64位和Oracle Database 11g 第 2 版(11.2.0.1.0)及相应的客户端版本:Oracle 11g client 64位。
其中Oracle Database 11g 安装在一台电脑,另一台安装SQL Server 2008 R2 64位和Oracle 11g client 64位。
二、创建SQL Server链接服务首先SQL Server链接Oracle可以通过两个访问接口:“MSDAORA”和“OraOLEDB.Oracle”。
默认状态下,SQL Server 2008 R2 64位安装后在服务器对象->链接服务器->访问接口下并没有“MSDAORA”和“OraOLEDB.Oracle”接口。
安装“MSDAORA”访问接口需要下载Oracle Data Access Components(ODAC)for Windows 的相应64位版本。
安装后重新启动服务器即可以看到“MSDAORA”接口。
因为此接口不支持分布式事务,因此不做过多的描述。
安装“OraOLEDB.Oracle”访问接口需要下载Oracle 11g client 64位。
具体安装过程如下:1)下载后解压zip文件到文件夹,点击setup.exe,弹出如下界面:直接点[是]。
2)弹出如下界面:选择[定制]选项。
点击下一步,弹出如下界面:直接点击下一步,弹出如下界面:选择软件安装的位置后点击下一步,弹出如下界面:在可用产品组件窗口点击[全选]后直接点击下一步,弹出如下窗口:在调度程序代理主机名中输入本机的主机名。
点击下一步,弹出如下界面:在Oracle Services for MTS 中配置端口,这里直接使用默认端口,点击下一步:Oracle Services for Microsoft Transaction ServerOracle Services for MTS 允许客户在MTS 协调事务中使用Oracle 数据库作为资源管理器,从而提供了Oracle 解决方案和MTS 之间的强大集成。
Oracle中使用透明网关链接到Sqlserver 1、Transparent Gateway for SQL Server安装弹出后填写sqlserver数据库的IP地址以及数据库实例名。
直接配置监听程序。
2、 编辑%ORACLE_HOME%\tg4msql\admin\init%ORACLE_SID%.ora 。
修改文件中的行其中SERVER 后为SQL Server 所在的服务器名称或ip 地址,Database 为连接到的数据库名称。
3、 编辑%ORACLE_HOME%"network"admin"listener.ora, 编辑对应listener 的SID_LIST 其中%ORACLE_SID%必须为第二布中设置的SID ,默认值为tg4msql 。
修改listener.ora 文件后需重启listener 使修改生效。
如果没有listener.ora 文件,请用Net Configuration Assistant 或Net Manager 新建一个LISTENER 。
红色部分必须要与文件名的init tg4msql .ora 红色部分。
4、在Oracle 服务器上:编辑需要连接到透明网关的Oracle Server 的$ORACLE_HOME\network\admin\tnsnames.ora, 例如:使用tnsping测试服务名是否连通,命令:tnsping tg4msql。
如果不通,请检查防火墙及网络配置。
5、在Oracle数据库中建立连接, 指向TG for SQL Server.其中tg4msql是tnsnames中建立的连接字符串.ms sql server的用户名和密码必须小写,而且要加双引号。
重新启动sqlserver服务器上配置的监听:cmdlsnrctl stoplsnrctl start使用语句进行测试:select * from EAP_MENU@TG4MSQL;如果查询没问题,则通信成功。
Linux系统oracle 11g数据库使用透明网关(gateway)连接sqlserver数据库本例中sqlserver数据库是192.168.6.199,oracle数据库是192.168.6.231,gateway透明网关是192.168.6.232,oracle和gateway分开部署。
1.准备环境参数a)b)c)d)2.安装gateway(透明网关)组件a)下载透明网关Oralce 11g下透明网管是一个单独的组件,需要单独下载安装,这里下载是64位的,请根据具体下载32位或64位,下载地址google搜索一下Oracle Database Gateways或者在oralce官网的Oracle Database Software Downloads找。
b)安装过程(过程中会创建监听)3.修改配置文件a)修改gateway(透明网关)的initdg4msql.ora安装完成后会自动生成/u01/app/oracle/product/11.2.0/tg_1/dg4msql/admin/initdg4msql.orab)修改gateway(透明网关)的监听文件listener.ora修改/u01/app/oracle/product/11.2.0/tg_1/network/admin/listener.ora文件添加以下内容c)修改oracle数据库的tnsname.ora配置文件添加以下内容4.测试连接a)创建数据库链接gw是链接名sa和password是sqlserver数据库的用户名和密码dg4msql是tnsname.ora配置文件中的监听名b)查询返回数据后,说明数据库链接可以正常使用。
sqlserver 连接oracle 配置详解2011-12-21 10:29 229人阅读评论(0) 收藏举报方法一:一、安装配置oracle客户端要访问orcale数据,必须在访问的客户端机器上安装oracle客户端。
Orcale有两种形式的客户端:l 完整的客户端包括访问服务器端数据库的基本Oracle 的 Microsoft OLE DB 访问接口需要 Oracle Client Software Support File以及SQL*Net 。
还包括用于配置客户端设置的工具、sqlplus、企业管理器等一系列的工具。
l 立即客户端(instant client)这个客户端体积很小,但是只包括了访问orcale服务器的最基本的支撑驱动,没有设置管理工具,也找不到可用的图形界面。
对客户端的设置需要手工就行。
目前orcale比较新的是oracle 10g版本,以这个版本为例。
1、下载oracle 10 的客户端可以到orcale官方网站下载,需要先注册,然后下载。
下载适用于Microsoft Windows (32-bit)的Oracle Database 10g Client Release 2的客户端,下载地址:/otn/nt/oracle10g/10201/10201_client_win32.zip2、安装oracle 10 客户端下载好后,解压,安装。
安装时有四个选项:l Instantclient,相当于最小化安装。
l 管理员,完整安装。
l 运行时l 自定义为了管理方便,一般以管理员方式安装。
3、配置oracle 10 客户端在客户端主要需要配置两个设置,命名方法和服务器别名,还有一个监听程序是服务端需要用的,用来监听客户端的访问,客户端不必设置监听程序。
这些设置都能在net manager工具中进行,在oracle程序组中的“配置和移植工具”中的“net manager”。
如图所示:概要文件就是用来设置命名方法和验证方式的的3.1. 命名方法在窗口左面的上部下拉列表中选“命名”,左边窗口显示目前可用的方法,右边是已经选择的命名方法,几个主要的命名方法有:l TNSNAMES表示采用TNSNAMES.ORA文件来解析l ONAMES表示Oracle使用自己的名称服务器(Oracle Name Server)来解析,目前Oracle建议使用轻量目录访问协议LDAP来取代ONAMESl HOSTNAME表示使用host文件,DNS,NIS等来解析一般使用本地命名方式来解析服务器名,即使用TNSNAMES.ORA中设置的服务器名。
如何实现SQLServer2008R2连接Oracle11gR2(64位版)一、实现连接前的准备软件准备1、SQLServer2008R2点击下载2、win64_11gR2_client点击下载3、ODAC112021Xcopy_x64点击下载二、连接方法通过SQLServer的LinkedServer功能连接Oracle三、实际操作1.1首先配置Client在SQLServer的主机上安装完Oracle的客户端后,可以在数据源里面看到Oracle的ODBC驱动,注意客户端的版本,最注意的是要根据操作系统来选择是64位或32位(此处选择64位),(在64位操作系统必须安装64位Oracle客户端才会在windows的数据源中才能显示出如下图所示驱动)PS.在64位操作系统中可以同时安装64位和32位Oracle客户端,其中默认配置文件已后面安装的目录和文件为准。
两个客户端都生效。
安装完成后在Oracle_Home(64位)下面查看的NETWORK\ADMIN找到tnsnames并加入如下内容注:ORCL =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))1.2安装ODBC驱动先解压安装包ODAC112021Xcopy_x64,把里面的文件都解压到一个文件夹里,我是解压到D:\ODAC112040Xcopy_64bit,然后打开cmd,进入到这个文件夹。
如图输入"install.bat all D:\OracleClient ODAC"(不含双引号)。
这里有几个参数需要特别注意,这里我们传入了三个参数,但最多可以传入四个。
注:后面的“D:\OracleClient ODAC”是安装目录,按照需求更改安装成功后会在SQLServe->Linked Servers中找到OraOLEDB.Oracle 服务,表示安装成功。
通过ORACLE通用连接访问SQLServer数据库的方法要通过Oracle通用连接访问SQL Server数据库,需要使用Oracle 的适配器来连接到SQL Server数据库。
以下是通过Oracle通用连接访问SQL Server数据库的方法:1. 安装并配置Oracle通用连接适配器:- 在Oracle数据库服务器上找到适配器的安装目录。
HS_FDS_CONNECT_INFO = server_nameHS_FDS_TRACE_LEVEL = offHS_FDS_SHAREABLE_NAME = /usr/local/bin/libodbc.so其中server_name是SQL Server数据库的主机名。
SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(SID_NAME = odbc)(ORACLE_HOME = /path/to/oracle_home)(PROGRAM = dg4odbc)其中/oracle_home是Oracle数据库的安装目录。
2.配置ODBC数据源:- 在Oracle数据库服务器上安装必要的ODBC驱动程序以连接到SQL Server数据库。
- 在ODBC数据源管理器中配置一个ODBC数据源,以便Oracle数据库可以通过该数据源连接到SQL Server数据库。
- 确保ODBC数据源名称与initodbc.ora文件中的server_name匹配。
3.创建数据库链接对象:- 在Oracle数据库服务器上创建一个数据库链接对象,该对象将用于连接到SQL Server数据库。
-使用CREATEDATABASELINK语句创建数据库链接对象,语法如下:CREATE DATABASE LINK link_nameCONNECT TO username IDENTIFIED BY passwordUSING 'data_source_name';其中link_name是链接名,username是在SQL Server数据库中的用户名,password是对应的密码,data_source_name是ODBC数据源的名称。
1、下载透明网关
Oralce 11g下透明网管是一个单独的组件,需要单独下载安装,这里下载是64位的,请根据具体下载32位或64位,下载地址google搜索一下Oracle Database Gateways或者在oralce 官网的Oracle Database Software Downloads找。
2、安装
解压后,进入目录,点击setup.exe,启动安装界面,安装Oracle Transparent Gateway for Microsoft SQL Server;
下一步,输入SQL Server地址和SQL Server数据库名。
安装完后,会弹出配置监听界面,选择执行典型配置,下一步,完成。
(注意:文档中红色字体标识的路径如:D:\oracle\product\11.2.0\tg_1就是网关安装,要所有地方一致。
)
3、配置文件
3.1 修改initdg4msql.ora。
在安装完成之后会产生一个默认的参数文件,D:\oracle\product\11.2.0\tg_1\dg4msql\admin\initdg4msql.ora,这里修改initdg4msql.ora文件的内容。
HS_FDS_CONNECT_INFO=192.168.0.21:1433//master
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
3.2 配置透明网关监听
(1)配置D:\oracle\product\11.2.0\tg_1\NETWORK\ADMIN\listener.ora (注意:没有listener.ora文件就新建一个,内容如下[这里端口是1523,目的是可能透明网关和Oralce在同一台机器上造成监听端口冲突]):
LISTENER =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL=TCP)(HOST=localhost)(PORT=1523))
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=dg4msql)
(ORACLE_HOME=D:\oracle\product\11.2.0\tg_1)
(PROGRAM=dg4msql)
)
)
#CONNECT_TIMEOUT_LISTENER = 0
(2)配置D:\oracle\product\11.2.0\tg_1\NETWORK\ADMIN\tnsnames.ora (注意:没有listener.ora文件就新建一个,内容如下):
dg4msql=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1523))
(CONNECT_DATA=(SID=dg4msql))
(HS=OK)
)
4、重启透明网关监听
5、测试连接
测试下ORACLE与SQLSERVER,是不是正常可以访问的。
创建数据库链接,DB21是链接名,sa是SQLSERVER数据库帐号,"12346"是数据库密码。
SQL> CREATE DATABASE LINK DB21 CONNECT TO SA IDENTIFIED BY "12346"
USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1523))
)
(CONNECT_DATA =
(SID = dg4msql)
)
(HS = OK)
)';
或者(例如):CREATE PUBLIC DATABASE LINK ly2
CONNECT TO sa IDENTIFIED BY sly5800
USING 'dg4msql'
#UNIT 是SQLSERVER库的表。
SQL> SELECT * FROM UNIT@DB21;
6、总结
当从oracle数据库上发出这个sql时,实际上通过tnsname.ora配置的dg4msql信息转到透明网关上,当透明网关的监听监听到tnsname.ora的请求时,再次通过inittest.ora配置的HS_FDS_CONNECT_INFO信息转到sqlserver数据库上,最终把用户需要的数据返回。
如果这个sql有记录返回,说明透明网关没有问题。
配置透明网关需要配置三个文件:分别为initdg4msql.ora、listener.ora、tnsname.ora。
7、补充
如果要用oracle 创建触发器运用dblink对进行的跨区域操作注意需要在sqlserver中创建recover用户和HS_TRANSACTION_LOG表。
创建流程:1、先创建登录用户例如test
点击左侧常规在右侧根据上图来创建登录名和密码,强制实施密码策略等不要勾选。
服务器角色根据图勾选public 选项即可。
用户映射也如上图所示
2、创建所要操作数据库的用户
鼠标右击选择新建用户
新建用户弹出上图界面:输入用户名(如test),登录用户名点击选择框选择一开始创建的test用户,默认架构选择dbo ,之后点击确定按钮。
右键架构新建架构
在架构名那边输入要取的架构名:(例如test),架构拥有者点击搜索选择之前创建的用户test.
点击权限点击角色或者用户那行的按钮选择之前创建的用户并在test的权限中把授予和具有授予的权限都勾上即可。
建表语句:
CREATE TABLE[test].[HS_TRANSACTION_LOG](
[GLOBAL_TRAN_ID][char](64)NOT NULL,
[TRAN_COMMENT][char](255)NULL
)。