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查看输出信息

  • 相关阅读:
    luogu P1833 樱花 看成混合背包
    luogu P1077 摆花 基础记数dp
    luogu P1095 守望者的逃离 经典dp
    Even Subset Sum Problem CodeForces
    Maximum White Subtree CodeForces
    Sleeping Schedule CodeForces
    Bombs CodeForces
    病毒侵袭持续中 HDU
    病毒侵袭 HDU
    Educational Codeforces Round 35 (Rated for Div. 2)
  • 原文地址:https://www.cnblogs.com/gameshan/p/4124964.html
Copyright © 2011-2022 走看看