ORA-01089 immediate shutdown in progress

本文探讨了Oracle数据库管理中的shutdown命令使用,包括其不同参数的功能。并通过实例演示了遇到数据库无法正常启动的问题,以及如何使用startforce命令解决。重点强调了在面对数据库故障时的正确操作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载自:http://mrzhangshunli.iteye.com/blog/353379

 

 

shutdown 命令 

SHUTDOWN有四个参数:NORMAL、TRANSACTIONAL、IMMEDIATE、ABORT。缺省不带任何参数时表示是NORMAL。 

SHUTDOWN NORMAL:不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。 

SHUTDOWN TRANSACTIONAL:不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。 

SHUTDOWN IMMEDIATE:不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。没有结束的事务是自动rollback的。启动时不需要实例恢复。 

SHUTDOWN ABORT:不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件。启动时自动进行实例恢复。 

 

STARTUP OPEN:STARTUP缺省的参数就是OPEN,打开数据库,允许数据库的访问。当前实例的控制文件中所描述的所有文件都已经打开。 

STARTUP MOUNT:MOUNT数据库,仅仅给DBA进行管理操作,不允许数据库的用户访问。仅仅只是当前实例的控制文件被打开,数据文件未打开。 

STARTUP NOMOUNT:仅仅通过初始化文件,分配出SGA区,启动数据库后台进程,没有打开控制文件和数据文件。不能任何访问数据库。 

STARTUP PFILE= filename:以filename为初始化文件启动数据库,不是采用缺省初始化文件。 

STARTUP FORCE:中止当前数据库的运行,并开始重新正常的启动数据库。 

STARTUP RESTRICT:只允许具有RESTRICTED SESSION权限的用户访问数据库。 

STARTUP RECOVER:数据库启动,并开始介质恢复。

 

 

 

此时采用strartup force

昨天一客户电话过来,说系统数据库访问出问题的了,由于前段时间系统Oracle出现了TNS-12500错误(下次贴出我的解决过程),我心里纳闷呢,刚解决不久难道又出现这个问题?我就试着远程登录那Oracle Server,顺利进去了,我查看了一些相关的系统视图,发现没什么问题,就想重起一下试试看吧。敲入命令shutdown immediate,等啊等啊,结果sqlplus程序死了,心里有点担心,在开一个sqlplus 重新连接该oracle server,提示连接空闲进程,一位database已经shutdown,就是用startup,出错了,提示ORA-01081,查看Oracle错误手册,得知要shut first。我就再次尝试shutdown immediate,这次提示ORA-01089,查看文档:

ORA-01089 immediate shutdown in progress - no operations are permitted
Cause: The SHUTDOWN IMMEDIATE command was used to shut down a
running Oracle instance, terminating any active operations.
Action: Wait for the instance to be restarted or contact the database
administrator.

由于第一遇到这个错误,心里发虚了,关又不让关,启动又不让启动,改如何时候呢?出去抽根烟,想起来了 不久前看的那个Oracle视频教程里的讲的一些东西,灭了烟回来,输入sql: start force强制启动,呵呵启动了,放心了。于是又想是不是shutdown abort也可以呢?

其实最根本的原因就是那该死的网速搞得鬼!!!
 
start force就是先做shutdown abort再作startup 
执行命令: sqlplus "/as sysdba" start force
备注* start force = shutdown abort startup 

 

<think>嗯,用户遇到了Oracle的错误ORA-01033,需要解决方案。首先,我要回忆一下这个错误通常是什么原因引起的。根据之前看到的引用内容,这个错误可能是因为数据库突然断电或者异常关闭,导致日志和数据文件不一致,无法正常启动。用户可能需要按照步骤来恢复数据库状态。 首先,应该以管理员身份登录SQL*Plus,使用sysdba权限。命令应该是sqlplus / as sysdba或者sqlplus system/密码 as sysdba。然后,检查数据库的状态,看看是否处于mount或nomount状态。如果数据库没有正常关闭,可能需要执行shutdown immediate,然后再startup。 不过,根据引用中的步骤,可能需要更详细的操作,比如在mount模式下恢复数据文件。例如,执行alter database open,如果遇到问题,可能需要恢复数据文件,使用recover datafile,然后alter database open。此外,用户可能需要检查数据文件的状态,使用select file#, name, status from v$datafile;,然后根据结果进行恢复。 另外,用户提到的引用[4]中有详细的步骤,包括卸载数据库、关闭监听、停止服务等。可能需要按顺序停止服务,再重新启动,确保所有组件正常启动。同时,注意数据文件路径是否正确,如引用[2]中提到的数据文件路径是否存在问题,可能需要确认文件是否存在或是否需要恢复。 还需要提醒用户在操作前备份数据,防止进一步的数据丢失。如果用户不熟悉这些步骤,建议他们联系DBA,或者在测试环境中先尝试。另外,检查日志文件alert.log可能会有更详细的错误信息,帮助诊断问题。 总结步骤应该是:1. 以sysdba登录;2. 检查状态,尝试正常关闭和启动;3. 如果失败,进入mount模式恢复数据文件;4. 重新启动服务和监听。同时,注意环境变量和文件路径是否正确,避免其他问题。</think>### 解决 Oracle 错误 ORA-01033 的步骤 #### 1. **以管理员身份登录数据库** 使用命令行工具(如 `cmd`)以 `sysdba` 权限登录: ```bash sqlplus / as sysdba 或 sqlplus system/密码 as sysdba ``` #### 2. **检查数据库状态** 查看数据库是否处于异常状态: ```sql SELECT status FROM v$instance; ``` 若状态为 `MOUNT` 或 `NOMOUNT`,需进一步修复[^1]。 #### 3. **尝试正常关闭和重启** ```sql -- 强制关闭(若正常关闭失败) SHUTDOWN ABORT; -- 重新启动 STARTUP; ``` 若仍报错,可能是数据文件未同步,需手动恢复[^4]。 #### 4. **挂载数据库并修复数据文件** ```sql -- 进入挂载模式 STARTUP MOUNT; -- 检查损坏的数据文件(如引用[2]中的文件路径) SELECT file#, name, status FROM v$datafile; -- 恢复指定文件(示例:文件编号8) RECOVER DATAFILE 8; -- 打开数据库 ALTER DATABASE OPEN; ``` #### 5. **重启监听和服务** 若数据库恢复后仍无法连接,需重启监听和服务: ```bash lsnrctl stop lsnrctl start -- 根据实际服务名操作(如OracleServiceORCL) net stop OracleServiceORCL net start OracleServiceORCL ``` 确保服务与监听的启动顺序正确。 #### 6. **验证连接** 使用客户端工具(如PL/SQL)重新登录,确认错误是否解决。 --- ### **注意事项** - **备份数据**:操作前建议备份数据文件(如 `D:/app/.../ORADATA/MyDB/201912.DAT`)[^2]。 - **日志分析**:查看 `alert.log` 文件(位于 `$ORACLE_BASE/diag/rdbms/<实例名>/trace`)定位具体错误。 - **权限问题**:确保操作账户具有 `sysdba` 权限。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值