zoukankan      html  css  js  c++  java
  • shutdown immediate 后无法启动实例问题解决

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

    关键字: oracle10g ora-12514: tns: 监听程序当前无法识别连接描述符中请求的服务 问题解决

        近日在配置Oracle 10G 的流复制环境时,遇到一个问题,关闭数据库(shutdown immediate )后,通过SQL Plus 连接数据库:conn sys/his@orc0 as sysdba ,出现如下错误:

        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:\oracle\product\10.2.0\db_1)

          (PROGRAM = extproc)

        )

       (SID_DESC =

        (GLOBAL_DBNAME = ORCL)

        (ORACLE_HOME = G:\oracle\product\10.2.0\db_1)   【其实在监听那里配置一下数据库监听位置,重启监听服务就行了!】

        (SID_NAME = ORCL)

        )

     )

    LISTENER =

     (DESCRIPTION_LIST =

        (DESCRIPTION =

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

        )

     )

     

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

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

    注意:监听修改后必须手动重启oracle监听服务,和oracle实例服务名

    补充:

    轻松四步配置Oracle数据库监听

    http://tech.ccidnet.com/art/1105/20070521/1085625_1.html

    原文摘自http://www.cnblogs.com/zyk/archive/2007/10/31/944667.html

  • 相关阅读:
    积性函数前缀和
    CF1067D Computer Game
    Atcoder Tenka1 Programmer Contest 2019 题解
    Codeforces Round #549 (Div. 1) 题解
    SHOI2019旅游记
    CF871D Paths
    CF1065E Side Transmutations
    停更公告
    博客说明
    SCOI2019酱油记
  • 原文地址:https://www.cnblogs.com/linsond/p/1626457.html
Copyright © 2011-2022 走看看