zoukankan      html  css  js  c++  java
  • ORA12514:TNS:监听程序当前无法识别连接描述符中请求的服务

    1. 首先查看tnsnames.ora,路径如下:
    oracle安装目录\product\10.2.0\db_1\NETWORK\ADMIN\。看其中是否包含了你的连接描述符中的服务,也就是你请求的服务。如果没有,则可以手动添加,比如:
    service_ex =
     (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = service_ex)
        )
     )
    可以参照tnsnames.ora中已有的服务描述。
    2. 再检查listener.ora,该文件与tnsnames.ora位于相同目录下。监听器启动时会读取这个文件,使用其中的信息来识别连接请求中的服务。所以出现ORA-12514错误时,大部分是因为这个文件有问题引起的。在这个文件中,我们要查看其中的服务名是否与tnsnames.ora中的服务名一致。如果不一致,则可以手动修改,就上面的例子来说,修改前的listener.ora可能是:
    LISTENER =
     (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
     )
    从上面的例子中可以看出,这个LISTENER中没有包含于tnsnames.ora对应的服务名,因此我们可以做如下的修改:
    LISTENER =
     (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
        (CONNECT_DATA =
          (SERVICE_NAME = service_ex)
        )
     )
    完成修改后,重新启动监听服务,问题基本上都可以得到解决。
    3. 如果还是出现同样的错误,也不用着急。Oracle的监听程序要比数据库服务启动的晚,当数据库服务启动之后,会修改listener.ora,把服务名写进listener.ora中,然后监听服务启动时读这个文件。但是在计算机启动时,有可能出现数据库服务还没有来得及修改listener.ora,监听服务就已经启来了。为了解决这个问题,我们可以把数据库服务跟监听器服务都设为手动启动,先启动数据库服务,然后再启动监听器服务。
    4.     除了上述情况外,出现TNS错误时,有可能是因为没有加载数据库实例,加载方法如下:
    在SQL/PLUS中输入startup force,强制加载数据库实例。
    5.    总结:
    ORA-12514错误引起的原因和解决办法基本就是这样,碰到问题时,实际情况实际分析,通过上面介绍的几种方法,多尝试几次,就可以解决了
  • 相关阅读:
    追随自己的价值观:用研经理 Anne Diaz 职业探索之路
    语义化版本(SemVer)的范围
    git如何放弃所有本地修改
    将本地已有的一个项目上传到新建的git仓库的方法
    using supervisord to run lsyncd script
    sersync下载安装及配置(有演示示例)
    sersync+rsync原理及部署
    Rsync+sersync 实现数据实时同步
    在分屏浏览中并排使用两个 Mac App
    MacOS 安装 Astah Professional 7.2
  • 原文地址:https://www.cnblogs.com/linsond/p/1560192.html
Copyright © 2011-2022 走看看