admin管理员组

文章数量:1667291

2024年5月30日发(作者:)

问题描述:

1. 以SYSDBA 身份连接 C:>sqlplus sys/orcl@orcl as sysdba ,登陆ORCL库 ,

执行关闭(SHUTDOWN)数据库。

2.然后重新启动(STARTUP)数据库时报错:

ORA-12528 :TNS:监听程序:所有适用的例程都不允许建立新的连接

ORA-01041:内部错误,hostdef扩展名不存在。

3. 重新用 C:>sqlplus sys/orcl@orcl as sysdba 登录数据库输入用户和密码后

报 ORA-01033:ORACLE initialization or shutdown in progress 的错误 。

解决思路:

1.首先查看listener状态,在命令行输入lsnrctl status ,结果中显示监听例程ORCL

状态为"BLOCKED";

2. 以SYSDBA权限登录(注意不指定数据库名),具体步骤:

1) 开始 - 运行 -cmd

2) 命令行中输入 SQLPLUS SYS/密码 AS SYSDBA

3) 输入 SHUTDOWN IMMEDIATE

4) 输入 STARTUP

再次输入用户和密码登录成功,查看listener状态,结果中显示监听例程ORCL状态

为READY。

问题分析:

1、在以 C:>sqlplus sys/orcl@orcl as sysdba 登陆时,是在库ORCL操作,完成

SHUTDOWN 后,执行STARTUP 时始终是在库ORCL中操作,而这时ORCL 已经关闭

了,因此出现错误。

2、重新以 C:>sqlplus sys/orcl as sysdba 登陆,以空例程登陆时,再STARTUP 时

就可以将库ORCL 重新启动。

备注:

(1) 当有多个数据库实例时,执行shutdown会关闭所有数据库实例,要重新打开,

执行startup,而不要指明具体的实例

(2) 先执行shutdown会关闭所有数据库实例,然后执行startup open orcl,此时

执行lsnrctl status ,结果中显示监听例程中其他的数据库实例状态为"BLOCKED";此时

通过执行lsnrctl stop和lsnrctl start并不能将这些数据库实例状态从"BLOCKED"变成

“Ready”。只能利用本文档的解决方法。

本文标签: 数据库例程实例状态监听