数据库没有启动时候,先启动listener:
D:\oracle\product\11.2.0.3\dbhome_1\BIN>lsnrctl status
LSNRCTL for 64-bit Windows: Version 11.2.0.3.0 - Production on 21-2月 -2012 23:19:35
Copyright (c) 1991, 2011, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracleworld)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 64-bit Windows: Version 11.2.0.3.0 - Production
启动日期 21-2月 -2012 23:19:14
正常运行时间 0 天 0 小时 0 分 25 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 d:\oracle\product\11.2.0.3\dbhome_1\network\admin\listener.ora
监听程序日志文件 d:\oracle\diag\tnslsnr\oracleworld\listener\alert\log.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracleworld)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
然后在启动数据库服务:
D:\oracle\product\11.2.0.3\dbhome_1\BIN>net start oracleservicedb11g
OracleServicedb11g 服务正在启动 ....................
OracleServicedb11g 服务已经启动成功。
再观察listener的状态:
D:\oracle\product\11.2.0.3\dbhome_1\BIN>lsnrctl status
LSNRCTL for 64-bit Windows: Version 11.2.0.3.0 - Production on 21-2月 -2012 23:20:53
Copyright (c) 1991, 2011, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracleworld)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 64-bit Windows: Version 11.2.0.3.0 - Production
启动日期 21-2月 -2012 23:19:14
正常运行时间 0 天 0 小时 1 分 43 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 d:\oracle\product\11.2.0.3\dbhome_1\network\admin\listener.ora
监听程序日志文件 d:\oracle\diag\tnslsnr\oracleworld\listener\alert\log.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracleworld)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "db11g" 包含 1 个实例。
实例 "db11g", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功
可以看到在database open情况下,listener状态时READY的,这个db11g数据库是使用动态监听,通过PMON进程
向listener注册数据库的。
再关闭数据库:
D:\oracle\product\11.2.0.3\dbhome_1\BIN>sqlplus /nolog
SQL*Plus: Release 11.2.0.3.0 Production on 星期二 2月 21 23:20:57 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
SQL> conn / as sysdba
已连接。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host lsnrctl status
LSNRCTL for 64-bit Windows: Version 11.2.0.3.0 - Production on 21-2月 -2012 23:22:08
Copyright (c) 1991, 2011, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracleworld)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 64-bit Windows: Version 11.2.0.3.0 - Production
启动日期 21-2月 -2012 23:19:14
正常运行时间 0 天 0 小时 2 分 58 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 d:\oracle\product\11.2.0.3\dbhome_1\network\admin\listener.ora
监听程序日志文件 d:\oracle\diag\tnslsnr\oracleworld\listener\alert\log.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracleworld)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
没有db11g数据库相关的信息,因为PMON进程关闭了。
再尝试启动数据库到nomount状态:
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 3407261696 bytes
Fixed Size 2259960 bytes
Variable Size 2516583432 bytes
Database Buffers 872415232 bytes
Redo Buffers 16003072 bytes
查看listener 状态:
服务 "CLRExtProc" 包含 1 个实例。
实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "db11g" 包含 1 个实例。
实例 "db11g", 状态 BLOCKED, 包含此服务的 1 个处理程序...
命令执行成功
状态时BLOCKED,这个时候连接数据库会报错:
SQL> conn as sysdba
ERROR:
ORA-12528: TNS: 监听程序: 所有适用例程都无法建立新连接
修改连接串db11g,在connect_data中添加(UR=A),如下面所示:
db11g =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracleworld)(PORT = 1521))
(CONNECT_DATA =
(service_name = db11g)(UR=A)
)
)
再测试:
SQL> conn as sysdba
已连接。
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for 64-bit Windows: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
现在可以正常连接了。
这个问题的处理,在创建database guard的时候比较有用。