SQL Server 2008创建oracle链接服务器(心得)

原创 2013年12月04日 10:28:47

    操作系统是32位的情况下,曾经没费太多时间创建好了到oracle的链接服务器。主要要点就是:

1、安装oracle精简客户端。当时我用的是版本比较低的“oracle9i310-客户端简化版”,安装好了以后再配置对应目录(我的是C:\Oracle\ora90\network\ADMIN)下的tnsnames.ora文件。这一步做完,基本上剩余的工作就是在sql server 2008里面创建链接服务器了。

2、新建链接服务器。当时我连的oracle数据库是64位11g,虽然安装的是“oracle9i310-客户端简化版”,最终还是成功创建好了链接服务器。“服务器类型”选的是“其他数据源”,访问接口选“Microsoft OLE DB Provider for Oracle”,"产品名称“随便输了点字符,没什么影响;”数据源“就是使用tnsnames.ora里面自己设置好的名称,比如,我在里面设的名称是"JSB",就照搬过来填在此处。“访问接口字符串”这个地方是耽误了我一段时间的,最开始我把这里空着,链接服务器当时也是创建成功了的,但是实际执行最简单的查询都始终处于执行中,没见着报错也没见到出结果。后来是把连接字符串写在这里才最终正常返回结果的!这个位置我是这样设的:data source=JSB;user=jsb123;password=jsb123;Persist Security Info=True。oracle用户名和密码是根据自己的实际情况来设。

     这一步骤还没完,还要把选择页切换到“安全性”,选中“使用此安全上下文建立连接(M):",然后输入oracle用户名和密码。最后点【确定】按钮,至此,到oracle的链接服务器创建成功!顺便补充一句,访问接口选“Oracle Provider for OLE DB”,我始终没有创建成功过,先记录下来,如有时间再琢磨了。完整截图如下:

 

------------------------------------------------偶是分割线-----------------------------------------------------------------------------------------------

    转眼间,遇到了64位的操作系统和64位的sql server 2008,要链接的仍然是同一个64位11goracle数据库。本以为跟以前的差不多,但是访问接口下拉选项根本就没有“Microsoft OLE DB Provider for Oracle”,所以32位下的成功经验完全用不上了。用百度搜索后决定用odbc方式,于是先后碰到如下问题:

    问题一,打开odbc源配置界面,系统DSN找不到oracle的驱动。后来才搞清楚如果是64位的odbc驱动就用”C:\Windows\System32\odbcad32.exe",如果是32的odbc驱动那就到“C:\Windows\SysWOW64\odbcad32.exe”设置。不晓得我说反没有,按我的印象是这样子的尴尬

    问题二,终于找到了“oracle9i310-客户端简化版”所安装的odbc驱动,第二个问题随之而来,创建系统DSN在测试连接始终失败。从网上查到的信息是说是这种低版本的连接11g数据库有问题。最终放弃了这个客户端版本另找他法。其实,32位下工作得很好,最终还是没落实清楚到底有没有冤枉它。

    问题三,找合适的64位客户端和odbc驱动。很奇怪“oracle9i310-客户端简化版”做得很好,安装后想要的东西都有了,现在为了解决问题三下载了多个压缩包都没使用成功,这个问题耗费了快两天的业余时间,比如下载的“ODAC1120320X64copy.zip",有人说好用,我是一点没用上,放弃。最后起作用的是这两个压缩包:”instantclient-basic-windows.x64-11.2.0.3.0.zip“和”instantclient-odbc-windows.x64-11.2.0.3.0.zip“。推荐自己在甲骨文网站注册帐号后自行下载。好,第三个问题ok。装完整的oracle客户端甚至完整安装oracle数据库也许就不能纠结这么长时间找软件了。但是,仅仅是为了在sql server 2008数据库服务器上创建oracle链接服务器就这样做,必定不能作为很好的方案。这也是花时间找精简版本的重要原因。

    问题四,驱动有了,接下来添加系统DSN就碰到问题,在TNS Service Name下拉框无选项。这当然跟tnsnames.ora有关,这才发现前一个步骤根本就没有涉及处理tnsnames.ora。后来是拷贝了“oracle9i310-客户端简化版”使用的tnsnames.ora到:”instantclient-basic-windows.x64-11.2.0.3.0“的安装目录,环境变量里面增加”TNS_ADMIN“,值设为:”instantclient-basic-windows.x64-11.2.0.3.0“的安装目录(我设的是:E:\instantclient_11_2)。下拉选项终于能看到tnsnames.ora里面自己设置好的名称了!测试连接成功,胜利近在眼前哈哈!相关的截图如下(Data Source Name由自己来设,我设的是oracle111。建链接服务器要用到这个名称):

    问题五,链接服务器始终创建不成功,报错:链接服务器 的 OLE DB 访问接口 "MSDASQL" 报错。身份验证失败;ORA-12154: TNS: 无法解析指定的连接标识符;Microsoft SQL Server,错误: 7399。几乎又用了一晚上在搜索该问题的解决方法。最后的正确答案是从csdn的旧帖子找到的,原讨论帖地址:http://bbs.csdn.net/topics/70308769 。失败之处就是“访问接口字符串(V)”没有设:MSDASQL!设好以后一切ok。完整的截图如下:

 

    64位环境下的链接服务器终于配置好了,能正常的查询数据。解决总共花费了两天的业余时间。简单的总结如下,如果知识面广恐怕不用频繁的百度和测试,因此耗费大量时间,例如@provider='MSDASQL',对此一点概念都没有,能百度出来真是有运气的成分!毕竟花时间最后还是解决了,也留了疑问并没有完全了解透彻,还是自我鼓励一下。







SQLServer2008新建数据链接服务器 for Oracle,实现不同数据库源数据的统一操作!

如何实现SQLServer2008中访问Oracle的表或视图,通过建立链接服务器即可在SQLServer中使用Oracle提供的表和视图,在当前库中实现统一查询的目的........
  • apicescn
  • apicescn
  • 2015年01月05日 11:48
  • 6856

SQL Server2008新建ODBC链接服务器

本文的目的是导出MySQL库到SQL Server,由于过于麻烦,建议有相同目的的请出门左转找“Microsoft SQL Server Migration Assistant 2008 for My...
  • tiantuanzi
  • tiantuanzi
  • 2016年07月27日 23:36
  • 2699

SQL Server中创建Oracle的链接服务器

打开Microsoft SQL Server Management Studio并以sa身份登录,在左侧的“对象资源管理器”窗口中展开“服务器对象”节点,在其下的“链接服务器”节点上右键选择“新建链接...
  • m15188153014
  • m15188153014
  • 2015年12月24日 16:49
  • 604

SQL Server 2008 R2开启数据库的远程连接及客户端配置

SQL Server 2008 R2如何开启数据库的远程连接SQL Server 2008默认是不允许远程连接的,如果想要在本地用SSMS连接远程服务器上的SQL Server 2008,远程连接数据...
  • YanceChen2013
  • YanceChen2013
  • 2017年01月04日 19:49
  • 9305

血泪经验分享--->SQL Server 2012建立链接服务器

现在我有一个需求是需要在两个不同的SQL SERVER 2012的服务器之间进行数据访问和更新。我们需要把Server One的数据插入到Server Two的服务器上去,一天执行一次任务。我们的首选...
  • waterxcfg304
  • waterxcfg304
  • 2014年12月19日 09:56
  • 26536

使用SQL Server 2008远程链接时SQL数据库不成功的解决方案

远程连接sql server 2008,服务器端和客户端配置 关键设置: 第一步(SQL2005、SQL2008): 开始-->程序-->Microsoft SQL Server 2...
  • lijianhe043
  • lijianhe043
  • 2016年07月27日 17:02
  • 5913

远程连接SQL Server 2008,服务器端和客户端配置

远程连接SQL Server 2008,服务器端和客户端配置 关键设置: 第一步(SQL2005、SQL2008): 开始-->程序-->Microsoft SQL Server 2...
  • superhoy
  • superhoy
  • 2016年06月27日 23:00
  • 3413

SQLServer链接数据库身份验证失败

最近在做跨主机的数据库交互,大概就是把DB1的某些数据搬到另外一台服务器的DB2 最佳的方法,就是用SQLServer的代理服务做定时任务,执行SQL脚本 同一个主机的数据库相互访问这个很容易,但跨主...
  • lijinan2008
  • lijinan2008
  • 2017年06月23日 08:32
  • 599

SQL创建链接服务器(脚本)

if exists (select * from master.dbo.sysservers where srvname = 'srv_lnk')     exec sp_dropserver 'sr...
  • markloong
  • markloong
  • 2015年06月05日 17:45
  • 1816

Sql Server 2008 R2数据库之登录名、用户、架构、权限和角色

原文地址http://www.shaoqun.com/a/106188.aspx 这几天先是研究了一下有关数据库的安全性、权限等方面的东西,那就是先说一下数据库安全性和权限的问题,首先是对数据库...
  • a956163985
  • a956163985
  • 2015年11月23日 15:35
  • 8791
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL Server 2008创建oracle链接服务器(心得)
举报原因:
原因补充:

(最多只允许输入30个字)