• oracle 网络环境配置


    PLSQL Developer连接Oracle11g 64位数据库配置详解

    最近换了台64bit的电脑,所以oracle数据库也跟着换成了64bit的,不过 问题也随之产生,由于plsql developer暂时没有64bit版本的,所以无法连接到64bit的oracle上,经过一番折腾,终于成功连接到数据库上,现记录下配置过程,以 便查看。

            1. 下载instantclient-basic-win32-11.2.0.1.0(oracle官网下载地址:http://www.oracle.com/technetwork/topics/winsoft-085727.html , 下载地址2:http://download.csdn.net/detail/czw2010/5732241)

              2. 解压instantclient-basic-win32-11.2.0.1.0并放置在oracle安装目录的product下(放置位置无强制要求,可随意放置),如下图:

       

               3. 拷贝E:appAdministratorproduct11.2.0dbhome_1NETWORKADMIN下的tnsnames.ora文件到instantclient_11_2下。

            4. 打开PLSQL Developer,选择Tools -> perference -> Connection,配置其中的Oracle Home和OCI Library项,如下图所示:

                      

                其中, Oracle Home:E:appAdministratorproductinstantclient_11_2

                          OCI Library:E:appAdministratorproductinstantclient_11_2oci.dll

             5.  配置系统环境变量

                右击"我的电脑" - "属性" - "高级" - "环境变量" - "系统环境变量":
                1>.选择"Path" - 点击"编辑", 把 "E:appAdministratorproductinstantclient_11_2;" 加入;
                2>.点击"新建", 变量名设置为"TNS_ADMIN", 变量值设置为"E:appAdministratorproductinstantclient_11_2;", 点击"确定";
                3>.点击"新建", 变量名设置为"NLS_LANG", 变量值设置为"SIMPLIFIED CHINESE_CHINA.ZHS16GBK", 点击"确定";

    远程连接oracle服务器:

    服务器端

        配置:oracle11g R2 x64

       1.设置监听

        a.启动栏 -> 开始 -> 程序 -> Oracle-OraDb11g_home1 -> 配置和移植工具 -> Net Manager

        b.Oracle  Net 配置 -> 本地 -> 监听程序 -> LISTENER ,查看是否有本地地址在监听,没有则添加,主机:"localhost",端口:1521,协议:TCP/IP

        2.关闭所有防火墙(包括Window防火墙)

        3.启动TNS监听服务:lsnrctl  start  (此程序LSNRCTL.exe位于oracle_path/product/11.2.0/dbhome_1/BIN目录下

        客户端(Windows)

        1.下载Instant Client for Microsoft Windows (32bit) 并安装,地址:   instant client下载

        2.将instant client的安装目录加入path环境变量中

        3.创建tnsnames.ora配置文件,内容格式如下:

    1. # tnsnames.ora Network Configuration File: C:eorcldbproduct11.2.0dbhome_1NETWORKADMIN nsnames.ora  
    2. # Generated by Oracle configuration tools.  
    3.   
    4. WSR =  
    5.   (DESCRIPTION =  
    6.     (ADDRESS_LIST =  
    7.       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.112)(PORT = 1521))  
    8.     )  
    9.     (CONNECT_DATA =  
    10.       (SERVICE_NAME = orcl)  
    11.     )  
    12.   )  
    13.   
    14. ORACLR_CONNECTION_DATA =  
    15.   (DESCRIPTION =  
    16.     (ADDRESS_LIST =  
    17.       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))  
    18.     )  
    19.     (CONNECT_DATA =  
    20.       (SID = CLRExtProc)  
    21.       (PRESENTATION = RO)  
    22.     )  
    23.   )  
    24.   
    25. LISTENER_ORCL =  
    26.   (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))  
    27.   
    28. ORCL =  
    29.   (DESCRIPTION =  
    30.     (ADDRESS_LIST =  
    31.       (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))  
    32.     )  
    33.     (CONNECT_DATA =  
    34.       (SERVER = DEDICATED)  
    35.       (SERVICE_NAME = orcl)  
    36.     )  
    37.   )  


        比如此文件,我创建的TNS服务名为WRS,Oracle服务器地址为192.168.1.112,Oracle服务器监听端口为1521,连接的Oracle数据库名为orcl,可以按此格式进行替换。

        4.添加TNS_ADMIN环境变量,指向创建的tnsnames.ora配置文件。

        至此,配置已经完成,可以用pl/sql developer之类的工具连接远程oracle数据库,database即为添加的tns服务名(这里为WSR)

        如果要用odbc连接数据库,还要添加odbc数据源,64位系统用C:WindowsSysWOW64odbcad32.exe,32位系统用C:WindowsSystem32odbcad32.exe

    第二种情况:

    本机未安装oracle服务器,也未安装oracle客户端。但是安装了pl sql development、toad sql development、sql navigator等管理数据库的工具。在虚拟机或者另一台电脑上安装了oracle服务器,也就是虚拟机或者另一台电脑此时作为服务器。

    这种情况下,本人以pl sql development远程连接ORACLE服务端数据库为例:

    1、在安装oracle服务器的机器上搜索下列文件:

    • oci.dll
    • ocijdbc10.dll
    • ociw32.dll
    • orannzsbb10.dll
    • oraocci10.dll
    • oraociei10.dll
    • sqlnet.ora
    • tnsnames.ora
    • classes12.jar
    • ojdbc14.jar

    把这些找到的文件复制放到一个文件夹,如 oraclient,将此文件夹复制到客户端机器上。如放置路径为 D:oraclient。

    2、配置tnsnames.ora,修改其中的数据库连接串。

     

    1. oracledata =  
    2.  
    3. (DESCRIPTION =  
    4.  
    5. (ADDRESS_LIST =  
    6.  
    7. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521))   
    8.  
    9. (CONNECT_DATA =  
    10.  
    11. (SERVICE_NAME = oracledata)   
    12.  

     

    其中,oracledata是要连接的服务名;HOST = 192.168.0.58,是服务器IP地址;PORT = 1521是端口号。

    3、添加第一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径(如:D:oraclient,特别是重装后或其它操作,忘 了TNS_ADMIN变量,plsql登陆就会报无法解析指定的连接标识符),这是为了能够找到上面说的tnsnames.ora。这步是最重要的。

    添加第二个环境变量(可有可无):“NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,(AMERICAN_AMERICA.US7ASCII 是ASCII编码类型,其它类型可自己到服务器看一下或网上查找一下)(本步骤暂时要做对,如果编码不对,会产生乱码)。

     

    4、下载并安装PL SQL Developer配置应用:

    打开PL SQL Developer,登入界面点取消,进入后选择菜单栏 tools->preferences->connection :

    1. Oracle Home=D:oracleclient  
    2. OCI library=D:oracleclientoci.dll 

     

    5、再次打开plsql则会在database中有oracledata 选项输入用户名密码就可以登陆。

    一、下载

    下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

    这是Oracle Instant Client的下载首页,有很多种版本可供下载。

    但要注意第三方工具如:PL/SQL Developer和Toad的版本,32位的要对应32位的OracleInstant Client,不要因为系统是64位的就下载64位的,这个要注意。

    二,配置

    把下载的instantclient-basic-nt-11.2.0.2.0.zip压缩包解压,放到 C:instantclient_11_2 目录下。

    在“环境变量”的“系统变量”中增加:

      1. ORACLE_HOME = C:instantclient_11_2
      2. TNS_ADMIN = C:instantclient_11_2
      3. NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK

    修改Path变量,在后面添加 C:instantclient_11_2

    三,新建tnsnames.ora文件

    在C:instantclient_11_2 新建一个tnsnames.ora文件,增加自己的数据库别名配置。

    示例如下:

    MyDB=

    (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST= 172.16.1.16)(PORT = 1521))

    (CONNECT_DATA =

    (SERVER = DEDICATED)

    (SERVICE_NAME = ora10g)

    )

    )

    注意格式要排列好

    主要改 = 前面的别名,Host为IP地址, SERVICE_NAME为数据库服务器的实例名。

    四,卸载方法

    “环境变量”中的“系统变量”中:

      1. 删除 ORACLE_HOME,TNS_ADMIN, NLS_LANG 三个变量,修改path变量,去掉C:instantclient_11_2目录
      2. 删除C:instantclient_11_2目录

    五,第三方工具使用

    上面的任何一种客户端配置好后,都可以安装Toad 或者PL/SQL Developer 工具,不需要再额外进行任何设置,即可使用。

    Error while trying to retrieve text for error ORA-01019

    这个问题网上查找很久,尝试的解决方法很多,但最终我的方案是:

    1、删除Oracle服务端;方法可以在网上搜,要删干净;

    2、删除ODAC及所有组件;

    3、保留Instant Client及其安装目录,主要是networkADMINtnsnames.ORA

    4、重新安装Oracle服务端;

    此时接所有客户端连接完全正常!

    小结:

    1、刚开始怀疑是64位Oracle驱动路径(x86)引起的bug,最后得出的结论是同一台机器,最好不要装两个Oracle客户端 ,服务端+客户端也不推荐,会引起一些潜在的问题,原因不明。

    2、64位的Oracle服务端+32位的Oracle客户端,会有一些潜在的问题,最好32位对32位,包括其它软件程序。

    如何设置Oracle的环境变量呢?

        如果从Windows控制台命令窗口输入进入数据库的命令:sqlplus "/as sysdba" 

        有可能会提示错误,导致不能进入到Oracle数据库中。这是因为在安装Oracle数据库软件时没有对Windows系统的环境变量进行设置,所以导致Windows识别不出Oracle的SQLPLUS命令。

        我们需要在环境变量中添加【变量】:“ORACLE_HOME”,【变量值】中输入oracle安装目录路径,例如:“D:/Program File/oracle/product/10.2.0/db_1”即可。

        连接成功后可以通过后台进程查看SQL*plus是32位还是64位的。

    ORA-12638: 身份证明检索失败 解决方法

    解决方案:

    D:appsabreproduct11.2.0client_1NETWORKADMIN

    此目录下找到sqlnet.ora文件,如果存在SQLNET.AUTHENTICATION_SERVICES= (NTS)设置,则修改为:SQLNET.AUTHENTICATION_SERVICES= (NONE),如果不存在,则直接添加SQLNET.AUTHENTICATION_SERVICES= (NONE),我的问题得以解决。

    SQLNET.AUTHENTICATION_SERVICES 表示oracle使用哪种验证方式,NTS表示采用本地操作系统认证,NONE表示将采用口令文件方式认证。设定了none后,本地的操作系统认证将不被许可,oracle将采用口令文件认证(此时 remote_login_passwordfile=exclusive)如connect /as sysdba 登录,后报错RA-01031: insufficient privileges,实际上是要求你输入sysdba的用户名和密码

     语句创建DBlink

    create public database link mgdagold connect to dagl IDENTIFIED BY dagl
    using '(DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.26.169.51)(PORT = 1521))
    )
    (CONNECT_DATA =
    (SERVICE_NAME = MGDOCU)
    )
    )'

  • 相关阅读:
    Beyond Compare保存快照和CRC比较相结合的方法
    如何在Beyond Compare文本比较时设置书签
    如何使用Navicat for SQLite 触发器
    Navicat Premium 中实用工具介绍
    Beyond Compare查看合并文本后相同内容的方法
    Marriage Match II HDU
    Escape HDU
    kebab HDU
    Task Schedule HDU
    网络流深入
  • 原文地址:https://www.cnblogs.com/bolang100/p/6588728.html
Copyright © 2020-2023  润新知