记一次SQLServer2012 创建链接服务器连接ORACLE数据库

场景:业务数据库是oracle 11g ,现在需要在另外一台服务器上安装SQLServer2012

并抽取oracle数据库中的数据

  1. 首先是安装服务器系统,WinServer2008R2   64 
  2. 操作系统安装完成后,拷贝数据库镜像,加载虚拟光驱,单击安装程序
  3. 提示系统不满足最低要求,因为没有打补丁,2008R2需要安装Service Pack1补丁包,去微软官网下载,没有2008R2,但是有WIN764位,是通用的。
  4. 第一次安装SP1补丁包,安装程序一闪而过,然后根据网上资料提示利用系统自带的系统更新程序更新。
  5. 更新完成之后,再去点击数据库安装程序,还是提示缺少Service Pack1,于是重新点击SP1安装程序,这次安装显得很正常,时间也比较久。由此可见,应该是先自动更新,然后才手动安装SP1
  6. 补丁完成之后,安装数据库,中途检查提示缺少.NET Framework 3.5 ,通过查找资料,发现直接在服务器管理界面,添加功能中勾选. NET framework 3.5即可,然后重新安装数据库
  7. 数据库安装完成之后,开始考虑创建链接服务器,以便跨库查询数据,这里没有使用数据导入是有原因的。
  8. 要建立链接Oracle的链接服务器,必须先准备Oracle对应版本的客户端,最开始用的32位的客户端,始终测试链接不成功,然后换了64为的客户端,客户端下载地址   https://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.html?ssSourceSiteId=otncn  这个页面有很多东西,找Client就对了记一次SQLServer2012 创建链接服务器连接ORACLE数据库_第1张图片
  9. 客户端安装完成之后,打开Net Manager ,新增服务命名,其中网络服务名任意填写,选TCP/IP协议,主机名是Oracle数据库服务器IP,端口号默认是1521,修改过的要自己查,最后服务名是Oracle数据库的service_name 在能链接Oracle数据库的客户端电脑上找到tnsnames.ora 其中就有。最后测试,需要修改登录用户及密码,默认测试账号是scott。测试成功之后,保存网络配置,退出。
  10. 在安装完成64位的oracle客户端之后,64为的ODBC数据源管理器中就会出现Oracle in OraClient11g_home1的选项,这就是驱动,ODBC数据源管理器有64位和32位两个,路径C:/Windows/SysWOW64/odbcad32.exe下的是32位的,如果安装的是32为的Oracle客户端,驱动就会出现在这个32位的ODBC数据源管理器中,而不会出现在64位中。64位的ODBC路径:C:/WINDOWS/system32/odbcad32.exe  我自己的经历是装了32的客户端,用32ODBC管理器配数据源,SQLServer创建的链接服务器是没有成功的,也忘记了是不是配置错误。
  11. 64ODBC数据源管理器中,选择系统DSN ,点击添加,选择oracle驱动,填写数据源名称,可随意取名,但需要记住,等会要用。Description不用填。TNS Service Name 点击倒三角会自动弹出Net Manager中新增的网络服务名,User ID 不用填,可以点击Test Connection 测试是否能连通。用户名和密码是登录Oracle数据库的用户名和密码。链接测试成功之后,点击OK。返回主界面,会看到已经添加上一个数据源。
  12. 然后回到SQLServer 新建链接服务器,但是在提供程序中却找不到 Oracle Provider for OLE DB驱动,通过在网上查找资料,最终找到一个有用的方法。                                                                                                                                             去Oracle官网下载一个名称为   64-bit ODAC 11.2 Release 6 (11.2.0.4.0) Xcopyfor Windows x64 的包 记一次SQLServer2012 创建链接服务器连接ORACLE数据库_第2张图片                                              因为这个包里有我们需要的驱动程序。下载地址:https://www.oracle.com/technetwork/database/windows/downloads/index-090165.html
  13. ODAC包下载之后,解压,里面有一个install.bat的安装批处理文件,本来以为是直接双击就可以,结果却不是,然后去看readme.htm。全是英文,看不懂,就把地址复制到chrome浏览器中,点击翻译。看了才知道,要使用命令,且要指定安装位置,还要设置环境变量,照着上面说的做,完成之后,在SQLServer中就可以看到需要的驱动了。
  14. 重新新建链接服务器,链接服务器名任意取,选其他数据源,提供程序选择:Oracle Provider for OLE DB ,产品名称填写ODBC数据源中新增的数据源名称,数据源填写Net Manager中新增的网路服务名。接口字符串不用填。在安全性选项卡中选择使用此安全上下文建立连接,并输入Oracle的用户名和密码,点击确定,如果没问题,就会创建成功,如果有问题,就会报错了。
  15. 如果有报错,无法创建链接服务器 "ORCL" OLE DB 访问接口 "OraOLEDB.Oracle" 的实例 (错误:7302),则将SQL ServerMSSQLSERVER)和SQL Full-Filter Deamon LauncherMSSQLSERVER)两个服务的登录身份改为Local Service就可以了。在服务中找到这两个服务,右键属性,选择登陆选项页,点击浏览,高级,查找,就会看到Local Service,然后输入两次密码,这个密码我不清楚是在设置密码,还是验证密码,反正我用的是SQLServer sa的密码。然后重启两个服务
  16. 再次对新建的链接服务器做链接测试。如果还是连不上,就点击链接服务器下的访问接口,展开后会看到OraOLEDB.Oracle,如果没有安装那个ODAC的包,这里是看不到这一项的。对其右键,选择属性,然后勾选允许进程内。确定。再次测试链接服务器,则应该可以链接成功了。除非你账户密码输入错误。
  17. 实际上比较安全的做法应该是通过Oracle向SQLServer推送数据。在网上查过,要通过Oracle连SQLServer ,必须安装一个叫Gateway的组件,叫数据库网关。下载地址和64位客户端的下载地址是一样的,在里面找Gateway 就行。安装和使用网上有很多教程,以后可以自己查 记一次SQLServer2012 创建链接服务器连接ORACLE数据库_第3张图片

你可能感兴趣的:(SQL,Server,SQLServer2012,创建链接服务器Oracle)