ORACLE11G_win32监听程序不支持服务

oralce安装完成后报监听服务不支持错误,经检查是由于监听没有配置好导致。

总结如下:

对于客户端程序:

1.需要将ORACLE_HOME配置成包含oci.dll文件的目录

set ORACLE_HOME=D:\app\Administrator\product\11.2.0\client_1

2.将path环境变量添加包含oci.dll文件的目录

set path=D:\app\Administrator\product\11.2.0\client_1:path

3.tnsnames.ora文件填写上连接字符串信息,TNS_ADMIN设置成包含tnsnames.ora文件路径。
set TNS_ADMIN=D:\app\Administrator\product\11.2.0\client_1

可以保存成bat文件执行:

@echo on
set path=D:\app\Administrator\product\11.2.0\client_1
set ORACLE_HOME=D:\app\Administrator\product\11.2.0\client_1:path
set TNS_ADMIN=D:\app\Administrator\product\11.2.0\client_1
set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
start C:\"Program Files (x86)"\"PLSQL Developer"\plsqldev.exe
@echo off

上述操作可以在右击我的电脑-属性-高级系统设置-高级-环境变量-系统变量下新增设置。这样不管重启什么的都可以使用。

这样启动plsql后就可以连接数据库了。

对于服务数据库程序,按配置客户端的方式配置好后也可以连接数据库,但要启动本地数据库需要关注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中会有相应的配置。

参考文章:

http://www.51testing.com/html/99/478599-842622.html

posted @ 2015-09-05 00:31  i舒  阅读(2550)  评论(0编辑  收藏  举报