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