zoukankan      html  css  js  c++  java
  • Oracle服务器和客户端安装在同一台机器的情况

    最近重装了系统,所有的开发环境需要重新部署一下,因此重新安装了Oracle,结果原来没有问题,这一次又碰到了几个问题(tns12154和tns03505),让我好一搞啊。不过又重新对Oracle加深了一下理解,在这里记录一下,防止下次忘记。

    1、系统环境

    Oracle11g x64,Client x86,win10专业版系统。

    Oracle连接plsql12的x64版和OB10(是32位的)。

    2、安装过程

    我的电脑所有软件都安装在D盘,Oracle也不例外,分别建立两个文件夹(11g_x64和Client_x86)。

    安装完成后,在客户端中新配置一个网络服务localorcl(服务器端的实例/SID是orcl),其他的所有配置都没有做(包括系统环境变量)。

    3、碰到的问题

    在上述的环境下,如果直接使用cmd来进行tnsping命令会出现以下情况:

    (1)tnsping orcl;会报错tns03505。

    (2)tnsping localorcl;可以连接成功。

    (3)tnsping 127.0.0.1;也可以连接成功。

    如果分别使用两个客户端连接软件的话,参数的填写和碰到的情况如下:

    (1)plsqlx64位的,在填写Database参数时,必须填写orcl(即服务器的实例名);如果填写client的网络服务名则报错tns12154。

    (2)使用OB进行连接,在填写Database时必须填写localorcl(即我自己配置的Client的网络服务名);如果填写服务器的实例名则报错tns12154。

    如果把环境变量都配置为客户端的参数(oracle_home、tns_admin),则在使用客户端连接软件连接时Database的值必须填写client的网络服务名。

    4、使用ArcGIS创建企业级地理数据库

    我这一通安装其实目的是为了使用ArcGIS的SDE库,因此还得转到这个问题上。

    在使用Catalog创建企业级地理数据库时,数据库选择Oracle,在填写“数据库实例”这个参数时,必须填写Client中创建的网络服务名,否则无法创建企业级地理数据库。(原因:Catalog使用时必须安装和使用32位客户端,因此在创建时也需要使用这个网络服务名来连接具体的Oracle数据库)

    5、总结

    其实最主要还是看是哪个软件来连接和使用Oracle数据库,不同的软件或系统在连接时有不同的要求,也就需要不同的连接参数配置。在碰到问题时,搞清楚具体是谁来使用,然后使用相应的连接参数即可。

    最后,附环境变量值的具体形式(具体路径根据你自己的安装来修改)

    TNS_ADMIN

    --D:OraClient_x86product11.2.0client_1 etworkadmin

    ORACLE_HOME
    ---D:Oracle11g_x64product11.2.0dbhome_1
    换成Server的地址后,x64的可以连接上,但是需要使用client的服务名来进行连接,而不能直接写orcl
    ---D:OraClient_x86product11.2.0client_1
    换成client的目录后,ob可以连接上(也必须使用client的服务名进行连接,不能使用orcl),但是x64的又连接不上了

    NLS_LANG(根据自己的字符集填写)
    --AMERICAN_AMERICA.ZHS16GBK
    --SIMPLIFIED CHINESE_CHINA.ZHS16GBK

  • 相关阅读:
    Java 8 forEach简单例子
    Intellij IDEA 使用
    java中的sleep()和wait()的区别
    MySQL问答整理
    java 正则例子
    如何在两个线程之间共享数据
    蜻蜓FM涉嫌诈骗投资人和广告主源代码剖析
    玩DNF开启NVIDIA独显的方法
    WSAEventSelect模型编程 详解
    签名时加密失败 --“对程序集签名时出错
  • 原文地址:https://www.cnblogs.com/qingtian-jlj/p/10672254.html
Copyright © 2011-2022 走看看