zoukankan      html  css  js  c++  java
  • Oracle远程连接

    Oracle远程连接不是直接使用Ip加端口 这种形式,而是使用TNS(个人感觉和ODBC的DSN有点类似,在某个地方保存一些设置,然后给这些设置起个名字,用的时候直接写这个名字就行了)

    TNS目录位置:

            安装目录NetworkAdmin nsnames.ora 

    ORCL32 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )

             客户端在连接的使用使用 ORCL32 就可以了。


    在Window中有如下几种方式连Oracle数据库

    1.使用ODBC

         32位window自带Microsoft ODBC for Oracle驱动(但是要用的话还要安装oracle客户端才行,如果同时安装32位和64位,则必须在Path环境变量中将32位的路劲写在64位前面才能用)

         64位window无自带驱动

    2.用于Oracle的.NET Framework数据提供程序

         VS2010开始微软已经建议不要使用这个来连接oracle数据库了

    3.用于OLE DB的.NET Framework数据提供程序

         VS2013开始微软已经建议不要使用这个来连接oracle数据库了

    4.安装ORACLE客户端(如果本机安装服务器端则不需要再安装客户端了)

        32位,提供了VS开发工具

        64位,没有提供VS开发工具(因为VS到目前为止还没有64位的)


    在VS中开发ORACLE数据库相关程序的时候注意:

        1.VS到现在为止还没有64位的版本,所以在VS中服务器资源管理器中连接ORACLE的时候只能用32位的ORACLE连接(如果你安装了64位oracle客户端,很不幸,你必须还要再安装32位的客户端)

                 如果要用微软自带的ODBC连接,则必须在Path环境变量中将32位的路劲写在64位前面才能用

        2.开发出来的程序32位64位,是否必须使用对应版本的oracle客户端还未知。

    我把我听到的告诉你,微软说,的确有无数的开发者提议微软开发64bit的Visual Studio,但是微软没有这么做,是因为微软调查了绝大多数的深层需求,他们之所以期待64bit的Visual Studio,是因为他们认为64bit的程序可能拥有更高的性能。但是实际上不是这么回事,64bit程序在x86-64处理器上并不会带来明显的性能提高,它只是增加了处理器的寻址范围,可以使用更大的内存。而对于VS这种并非内存敏感的程序,并不十分需要迁移到64bit下。另外,还有一个历史原因,就是微软一直没有完成64bit下的JIT调试器的Edit and Continue功能,这是因为64bit的JIT是C++团队做的,和原生CLR团队的32bit JIT有很多不同,微软现在正在试图统一两者。如果微软推出了64bit的VS,那么调试的体验会受到限制,这也是为什么微软一直以来没有推出64bit VS的原因。

    在MSSQL中,导出导入 Oracle数据库的时候

    1.Microsoft OLE DB Provider for Oracle     可以使用    TNS 或   IP/服务名  或 机器名/服务名

    2.Oracle Provider for OLE DB           可以使用    TNS 或   IP/服务名  或 机器名/服务名

    这里的   TNS    (必须是和MSSQL32或64位对应的的ODAC相关版本 NetworkAdmin nsnames.ora 中定义的)

    如果连接的时候提示    error while trying to retrieve text for error ora-01019     可能是

    安装的Oracle Client连接库是否和原来在系统里的库有冲突. 有时会出现, 之前安装了其他数据库服务器, 有相同的库, 但是是老版本, 所以要在使用Oracle之前, 把环境变量设置好,增加ORACLE_HOME这个环境变量,指向ORACLE的安装目录.你可能装过几次ORACLE 客户端  http://bbs.csdn.net/topics/390677745

    这个时候必须设置环境变量  ORACLE_HOME ,如果是64位的,则这样设置后则VS中服务资源管理器就不能连Oracle了。

    还好这种情况不常出现,出现的时候变通处理一下,毕竟MSSQL导入导出用的比较少。

    ORA-12541: TNS: 无监听程序

    http://blog.csdn.net/ysdaniel/article/details/6627360

    http://blog.csdn.net/gdweijin/article/details/5758471

    http://zhidao.baidu.com/link?url=aBcLc0RHUruOVy_zNbYruCOsduwO2BmaN3k4FXEfnW-9sOU7Ko_gPc1mTylwZEhwjT-YKaVjO5ct5aimxce4aq

    http://www.youxia.org/ora-12541-tns-oracle.html

    http://blog.csdn.net/wwbmyos/article/details/11475551/

    http://www.luocs.com/archives/464.html

    http://bbs.csdn.net/topics/390135995

    http://www.cnblogs.com/kerrycode/archive/2012/12/14/2818421.html

    http://blog.csdn.net/elvis_dataguru/article/details/8984961

    http://blog.csdn.net/elvis_dataguru/article/details/8986744

    http://blog.itpub.net/9240380/viewspace-719391/

    1.在服务器上使用命令行执行 tnsping 服务器ip:端口号,看是否可以连通

      tnsping localhost  正常可以连接

      tnsping 127.0.0.1  正常可以连接

      tnsping 服务器IP地址(可能出现TNS-12541: TNS: 无监听程序)

      在listener.ora文件中的添加服务器ip地址(应该可以连接了)

    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = 服务器IP)(PORT = 1521))
        )
      )

    2.在命令行中执行LSNRCTL

      然后status查看输出信息

  • 相关阅读:
    php模式设计之 工厂模式
    SDK以及部署的SDK的思路
    手机用fiddler抓包开发测试
    搭建GIT服务端
    TP5.0以上数据库增加数据异常
    lnmp一键安装后的配置改动建议
    TPshop5最新版 安装 nginx 开启PATHINFO 模式资源加载路径加载失败问题,适用tp3.2PATHINFO模式REWRITE模式
    jquery写拉动条
    JS(JQ)分页 个人查看,没注释
    ecshop 分页
  • 原文地址:https://www.cnblogs.com/gameshan/p/4124964.html
Copyright © 2011-2022 走看看