报出“监听程序不支持服务”
原因:D:\Oracle\install\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora丢失……
于是从其他电脑复制一个,重新启动监听,问题解决,下面是好的listener.ora
# listener.ora Network Configuration File: D:\Oracle\install\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(SID_NAME = ORCL)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
2.检查监听器状态:
C:\Users>lsnrctl status
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 29-10月-2014 16:28:50
Copyright (c) 1991, 2010, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
TNS-12541: TNS: 无监听程序
TNS-12560: TNS: 协议适配器错误
TNS-00511: 无监听程序
64-bit Windows Error: 61: Unknown error
3.尝试登陆本地数据库:
C:\Users>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期三 10月 29 16:30:23 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> conn scott/tiger@orcl
ERROR:
ORA-12541: TNS: 无监听程序
SQL> exit;
--结果显示oracle监听进程未启动
--如果没有启动ORACLE服务的话将出现: ERROR: ORA-12560: TNS: 协议适配器错误
4.启动监听:
C:\Users>lsnrctl start
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 29-10月-2014 16:21:37
Copyright (c) 1991, 2010, Oracle. All rights reserved.
启动tnslsnr: 请稍候...
TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
系统参数文件为D:\Oracle\install\product\11.2.0\dbhome_1\network\admin\listener.ora
写入d:\oracle\install\diag\tnslsnr\Lenovo-PC\listener\alert\log.xml的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
启动日期 29-10月-2014 16:21:42
正常运行时间 0 天 0 小时 0 分 5 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 D:\Oracle\install\product\11.2.0\dbhome_1\network\admin\listener.ora
监听程序日志文件 d:\oracle\install\diag\tnslsnr\Lenovo-PC\listener\alert\log.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
服务摘要..
服务 "ORCL" 包含 1 个实例。
实例 "ORCL", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
C:\Users>lsnrctl status
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 29-10月-2014 16:26:40
Copyright (c) 1991, 2010, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Produ
ction
启动日期 29-10月-2014 16:21:42
正常运行时间 0 天 0 小时 5 分 2 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 D:\Oracle\install\product\11.2.0\dbhome_1\network\admi
n\listener.ora
监听程序日志文件 d:\oracle\install\diag\tnslsnr\Lenovo-PC\listener\aler
t\log.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
服务摘要..
服务 "ORCL" 包含 1 个实例。
实例 "ORCL", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
5.监听打开后试图连接到数据库:
C:\Users>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期三 10月 29 16:32:48 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> conn scott/tiger@orcl
ERROR:
ORA-12518: TNS: 监听程序无法分发客户机连接
原因:本地数据库对应的服务没有打开
SQL> exit
6.打开本地数据库对应的服务:
C:\Users>net start OracleServiceORCL
OracleServiceORCL 服务正在启动 ...........
OracleServiceORCL 服务已经启动成功。
再次试图连接数据库
C:\Users>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期三 10月 29 16:34:59 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> conn scott/tiger@orcl
已连接。
SQL> show user
USER 为 "SCOTT"
SQL> conn system/orcl@orcl
已连接。
SQL> show user
USER 为 "SYSTEM"
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
orcl
7.停止本地数据库对应服务:
C:\Users>net stop oracleserviceorcl
OracleServiceORCL 服务正在停止.....
OracleServiceORCL 服务已成功停止。
8.停止监听进程:
C:\Users>lsnrctl stop
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 29-10月-2014 16:43:27
Copyright (c) 1991, 2010, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
命令执行成功
lsnrctl命令参数解释:
lsnrctl start | stop | status | reload | set | show | help | version | change_password
start :启动监听进程
stop :停止监听进程
status :查看监听进程的状态
reload :重新加载监听进程
set :设置相应的参数
help :显示帮助信息
version :显示当前监听进程的版本
change_password :改变口令
oracle服务启动及关闭命令:
C:\Users>net start oracleserviceorcl --服务名称标颜色地方用具体数据库实例名 orcl是安装数据库时默认的数据库实例
OracleServiceORCL 服务正在启动 ...
OracleServiceORCL 服务已经启动成功。
OracleServiceORCL 服务正在停止.....
OracleServiceORCL 服务已成功停止。