正在看的ORACLE教程是:Oracle 9i 数据库异常关闭后的启动。 Oracle数据库启动 Oracleshutdown的时候突然断电,导致使用sql/plus启动时无法连接到数据库,具体描述为: connectioncannotpermitted,shutinprogress. 到dos提示符键入: c:>sqlplus/nolog 显示: sql/plus:Realease9.0.2……..allrightsreserved sql>connect/assysdba 显示已连接至空闲例程 sql>startup显示shutdowninprogress. 到sqlplus里面连接: sys/manager@orcl92显示信息连接成功。 sql:select*fromtab; 显示norowsselected; 表明:没有启动数据库。后来查阅相关资料:得出解决方法: 到dos提示符键入: c:>sqlplus/nolog 显示sql/plus:Realease9.0.2……..allrightsreserved sql>connect/assysdba 显示已连接至空闲例程 sql>startupforce 显示:已启动。数据库已正常启动。 也可以先将windowsservices中将oraclehome92service停止,再启动oracleenterprisemanagerconsole,选择独立启动,选择数据库,点击orcl(全局数据库名),弹出对话框,输入用户名system密码password,连接身份:sysdba,选择例程,配置,在一般信息标签下将例程状态先改为关闭,在打开。如果提示oraclehome92service停止,则将这个服务启动起来,再启动数据库,也可解决问题。 附:startupforce强制启动一个没有关闭或没能正常启动的数据库;过程:先关闭实例,再启动。 Startuprestrict以限制模式启动数据库,从而限制访问数据库,只有具有restrictedsession权限的用户能与数据库连接 altersystem[enable/disable]restrictedsession在数据库打开后,该语句启动或关闭访问限制功能。如果相对主结构做更改或想得到导出一致性,应将数据库设置为限制模式。只有具有altersystem权限,才可以用altersystem[enable/disable]restrictedsession命令改变数据库的可用性。 当一个实例以nomount状态启动时,只能访问sga读取数据的视图。关于v$thread,v$controlftle等信息从sga读取数据的词典视图。当数据库被装配时,关于v$thread,v$controlftle等信息从控制文件中被读出。 分析,当数据库异常关闭时,shutdown在程序里没有退出,因此启动实例时检测到shutdown,则系统报错。因此需要先关闭数据库,再启动数据库。