• 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错误引起的原因和解决办法基本就是这样,碰到问题时,实际情况实际分析,通过上面介绍的几种方法,多尝试几次,就可以解决了
  • 相关阅读:
    cocos2D-X 4.0 build
    Boost Download
    史上最全的CSS hack
    web前端js中ES6的规范写法
    爬虫最终杀手锏 --- PhantomJS 详解(附案例)
    移动端300ms延迟的解决方法
    js动态生成html元素并为元素追加属性
    css中border-sizing属性详解和应用
    纯CSS实现Tab切换
    阻止移动端浏览器点击图片会预览的几种方法
  • 原文地址:https://www.cnblogs.com/linsond/p/1560192.html
Copyright © 2020-2023  润新知