ORA-01033: ORACLE initialization or shutdown in progress数据文件损坏错误解决方案

本文记录了在WinXP环境下使用Oracle10g时遇到的ORA-01033错误及SYSTEM表空间数据文件离线的问题。通过详细的操作步骤,包括使用SYSDBA权限关闭数据库、重启至MOUNT状态并调整数据文件状态等,成功解决了问题。

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

环境

WinXP

Oracle 10g(安装路径D:/ORACLE/PRODUCT/10.1.0/

错误现象

昨天在使用ORADIM 删除一个不用的SID服务,今天在启动数据库时候出现一个 错误,
ORA-01033: ORACLE initialization or shutdown in progress

原因

删除SID时,删除了一个表空间的数据文件

处理过程

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:/Documents and Settings/xxxx>sqlplus system/yang@ora
 
SQL*Plus: Release 10.1.0.2.0 - Production on 火 1月 15 12:19:18 2008
 
Copyright (c) 1982, 2004, Oracle. All rights reserved.
 
ERROR:
ORA-01033: ORACLE initialization or shutdown in progress
 
NOLOG登录数据库
C:/Documents and Settings/xxxx>sqlplus /nolog
 
SQL*Plus: Release 10.1.0.2.0 - Production on 火 1月 15 12:35:54 2008
 
Copyright (c) 1982, 2004, Oracle. All rights reserved.
 
使用SYSDBA连接数据库
SQL> connect sys/yang as sysdba
Connected.
关闭数据库
SQL> shutdown normal
ORA-01109: database not open
 
Database dismounted.
ORACLE instance shut down.
 
重启到MOUNT状态
SQL> startup mount
ORACLE instance started.
 
Total System Global Area 171966464 bytes
Fixed Size                    787988 bytes
Variable Size              145488364 bytes
Database Buffers            25165824 bytes
Redo Buffers                  524288 bytes
Database mounted.
 
ALTER 数据库 OPEN状态
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01147: SYSTEM tablespace file 1 is offline
ORA-01110: data file 1: 'D:/ORACLE/PRODUCT/10.1.0/ORADATA/ORA/SYSTEM01.DBF'
显示出 datafile 1发生错误 
 
修改datafile 1的状态
SQL> alter database datafile 1 online;
 
Database altered.
 
数据库状态
SQL> alter database open ; 
Database altered.
数据库正常
SQL> conn system/yang@ora
Connected.
SQL> select * from state;
 
CNT_C ST_ ST_NAME
----- --- ----------
1      11 123
1      11 123
 
SQL>
还有不太明确的地方
是不是ORADIM删除SID造成的数据文件的丢失
 
<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` 权限。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值