zoukankan      html  css  js  c++  java
  • ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务--解决办法(转)

    网上很多版本 都是一样的 我也不知道谁是原创了

    ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

    通过重启服务的方式启动数据库,再次连接却能成功登录,也就是说在关闭数据库状态下无法连接服务器。

        开始以为是系统环境变量Oracle_SID的配置问题,因为机器有多个实例,一阵折腾后还是不能连接。后来查资料得知:

        Oracle9i以后,后台进程PMON自动在监听器中注册在系统参数SERVICE_NAMES中定义的服务名,SERVICE_NAMES默认为DB_NAME+DOMAIN_NAME。监听配置文件listener.ora中可以不必指定监听的服务名。但是,当数据库处于关闭状态下PMON进程没有启动,也就不会自动注册监听的实例名,所以使用sqlplus sys/his@orc0 as sysdba 会出现ORA-12514错误。

    如果在listener.ora文件中指定监听的实例名,则即使数据库处于关闭状态,仍然可以连接。

    listener.ora

    SID_LIST_LISTENER =

      (SID_LIST =

        (SID_DESC =

          (SID_NAME = PLSExtProc)

          (ORACLE_HOME = G:oracleproduct10.2.0db_1)

          (PROGRAM = extproc)

        )

       (SID_DESC =

        (GLOBAL_DBNAME = ORCL)

        (ORACLE_HOME = G:oracleproduct10.2.0db_1)  

        (SID_NAME = ORCL)

        )

      )

    LISTENER =

      (DESCRIPTION_LIST =

        (DESCRIPTION =

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

        )

      )

    以上粗体部件为增加的内容,修改后重启监听服务后即可。

    重启监听服务方法:lsnrctl stop关闭所有监听

             lsnrctl start启动所有监听

    附:通过在lsnrctl中输入set display verbose,然后再通过命令service查看,服务状态为READY表示PMON自动注册的服务名,而UNKNOWN则表示该服务是手工在LISTENER.ORA中配置的数据库服务。

  • 相关阅读:
    Docker学习-安装,配置,运行
    Docker学习-从无知到有知的学习过程
    学习记录-java基础部分(一)
    对get post等http请求方式的理解
    Mac和window实现双向数据传输
    git pull时 git cannot lock ref XXXXXX (unable to update local ref)错误解决方案
    三年内我的计划和方向
    关于云服务器和云部署的实操(新手级别入门)
    win7蓝屏死机0x0000003B错误蓝屏故障解决
    JAVA代码:生成一个集合,自定义大小,100以内的随机整数
  • 原文地址:https://www.cnblogs.com/sanqianjun/p/3333065.html
Copyright © 2011-2022 走看看