ORACLE11G_win32监听程序不支持服务

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lang_niu/article/details/79706085

解决过程如下:

第一步:

对于服务数据库程序,按配置客户端的方式配置好后也可以连接数据库,但要启动本地数据库需要关注listener.ora,sqlnet.ora和tnsnames.ora三个文件配置。在安装数据库软件完成后,需要先配置监听,再配置网络服务名,这样才能够正常启动。

对于这个报错需要配置listener.ora:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\app\Administrator\product\11.2.0\oracledb)
      (PROGRAM = extproc)
    )
   (SID_DESC =
      (SID_NAME = orcl)
      (ORACLE_HOME = D:\app\Administrator\product\11.2.0\oracledb)
      (GLOBAL_DBNAME= orcl)
  )
)


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = aXC)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )

 

执行命令lsnrctl stop、lsnrctl start、lsnrctl status就可以看到数据库监听服务已经起来。

PLSExtProc不是oracle实例,是pl/sql external procdure 的意思,就是在pl/sql中调用外部语句,如c,java写的过程。这个里面的配置,是让监听器产生extproc agent,实际上就是一个extproc进程,用于为external procedure 服务。

如果只启动了PLSExtProc,新建的实例orcl没有起来,这样其它计算机使用pl/sql连接的话,会出现“ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务”。当然原因还是在于listener.ora。一般新建监听之后,listener.ora中会有相应的配置。


第二步:如果第一步完成后还无法正常登录,则执行第二步操作:

cmd下,执行以下命令,启动数据库

  1、sqlplus /nolog  登陆数据库

  2、conn 用户名/密码  as sysdba   以管理员权限登陆

  3、startup  启动数据库


猜你喜欢

转载自blog.csdn.net/lang_niu/article/details/79706085