数据库没有启动时候,先启动listener:
D:\oracle\product\11.2.0.3\dbhome_1\BIN>lsnrctlstatus
LSNRCTLfor64-bitWindows:Version11.2.0.3.0-Productionon21-2月-201223:19:35
Copyright(c)1991,2011,Oracle.Allrightsreserved.
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracleworld)(PORT=1521)))
LISTENER的STATUS
------------------------
别名LISTENER
版本TNSLSNRfor64-bitWindows:Version11.2.0.3.0-Production
启动日期21-2月-201223:19:14
正常运行时间0天0小时0分25秒
跟踪级别off
安全性ON:LocalOSAuthentication
SNMPOFF
监听程序参数文件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>netstartoracleservicedb11g
OracleServicedb11g服务正在启动....................
OracleServicedb11g服务已经启动成功。
再观察listener的状态:
D:\oracle\product\11.2.0.3\dbhome_1\BIN>lsnrctlstatus
LSNRCTLfor64-bitWindows:Version11.2.0.3.0-Productionon21-2月-201223:20:53
Copyright(c)1991,2011,Oracle.Allrightsreserved.
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracleworld)(PORT=1521)))
LISTENER的STATUS
------------------------
别名LISTENER
版本TNSLSNRfor64-bitWindows:Version11.2.0.3.0-Production
启动日期21-2月-201223:19:14
正常运行时间0天0小时1分43秒
跟踪级别off
安全性ON:LocalOSAuthentication
SNMPOFF
监听程序参数文件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个处理程序...
命令执行成功
可以看到在databaseopen情况下,listener状态时READY的,这个db11g数据库是使用动态监听,通过PMON进程
向listener注册数据库的。
再关闭数据库:
D:\oracle\product\11.2.0.3\dbhome_1\BIN>sqlplus/nolog
SQL*Plus:Release11.2.0.3.0Productionon星期二2月2123:20:572012
Copyright(c)1982,2011,Oracle.Allrightsreserved.
SQL>conn/assysdba
已连接。
SQL>shutdownimmediate
数据库已经关闭。
已经卸载数据库。
ORACLE例程已经关闭。
SQL>hostlsnrctlstatus
LSNRCTLfor64-bitWindows:Version11.2.0.3.0-Productionon21-2月-201223:22:08
Copyright(c)1991,2011,Oracle.Allrightsreserved.
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracleworld)(PORT=1521)))
LISTENER的STATUS
------------------------
别名LISTENER
版本TNSLSNRfor64-bitWindows:Version11.2.0.3.0-Production
启动日期21-2月-201223:19:14
正常运行时间0天0小时2分58秒
跟踪级别off
安全性ON:LocalOSAuthentication
SNMPOFF
监听程序参数文件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>startupnomount
ORACLE例程已经启动。
TotalSystemGlobalArea3407261696bytes
FixedSize2259960bytes
VariableSize2516583432bytes
DatabaseBuffers872415232bytes
RedoBuffers16003072bytes
查看listener状态:
服务"CLRExtProc"包含1个实例。
实例"CLRExtProc",状态UNKNOWN,包含此服务的1个处理程序...
服务"db11g"包含1个实例。
实例"db11g",状态BLOCKED,包含此服务的1个处理程序...
命令执行成功
状态时BLOCKED,这个时候连接数据库会报错:
SQL>connassysdba
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>connassysdba
已连接。
SQL>select*fromv$version;
BANNER
--------------------------------------------------------------------------------
OracleDatabase11gEnterpriseEditionRelease11.2.0.3.0-64bitProduction
PL/SQLRelease11.2.0.3.0-Production
CORE11.2.0.3.0Production
TNSfor64-bitWindows:Version11.2.0.3.0-Production
NLSRTLVersion11.2.0.3.0-Production
现在可以正常连接了。
这个问题的处理,在创建databaseguard的时候比较有用。