oracle ORA-01033错误的解决方案

oracle ORA-01033错误的解决方案

分类: 数据库栏目 2503人阅读 评论(0) 收藏 举报

问题描述:本人那次用C#程序操作影像数据——将多幅影像合成一幅影像,由于影像较大,通过oracle 数据库来存储,不过由于程序运行了一段时间后系统消耗的资源太多,结果程序为响应,我就把程序关闭。结果oracle数据库崩掉了。

通过Oracle Enterprise Manager Console连接数据库,就弹出ORA-01033: ORACLE initialization or shutdown in progress提示信息。

(1)我到网上找到了相依的解决,如下

客户Oracle服务器进入PL/SQL Developer时报ora-01033:oracle initializationg or shutdown in progress 错误提示,应用系统无法连接Oracle服务。经远程指导解决问题。过程如下:

1、进入CMD,执行set ORACLE_SID=fbms,确保连接到正确的SID;
2、运行sqlplus "/as sysdba"
      SQL>shutdown immediate      停止服务
     SQL>startup                          启动服务,观察启动时有无数据文件加载报错,并记住出错数据文件标号
     SQL>shutdown immediate      再次停止服务
     SQL>startup mount
     SQL> recover datafile 2         恢复出错的数据文件
     SQL>shutdown immediate      再次停止服务
    SQL>startup                          启动服务,此次正常。
3、进入PL/SQL Developer检查,没有再提示错误。

运行结果如下:

C:/Documents and Settings/江毅>set ORACLE_SID=supermapdb

C:/Documents and Settings/江毅>sqlplus "/as sysdba"

SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 9月 26 20:06:13 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> shutdown immediate
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             230689668 bytes
Database Buffers          373293056 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 4 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 4:
'E:/DATABASE/ORACLE/PRODUCT/10.2.0/ORADATA/SUPERMAPDB/.DBF'


SQL> shutdown immediate
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             230689668 bytes
Database Buffers          373293056 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
SQL> recover datafile 4
ORA-00283: 恢复会话因错误而取消
ORA-01110: 数据文件 4:
'E:/DATABASE/ORACLE/PRODUCT/10.2.0/ORADATA/SUPERMAPDB/.DBF'
ORA-01157: 无法标识/锁定数据文件 4 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 4:
'E:/DATABASE/ORACLE/PRODUCT/10.2.0/ORADATA/SUPERMAPDB/.DBF'


SQL> shutdown immediate
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             230689668 bytes
Database Buffers          373293056 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 4 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 4:
'E:/DATABASE/ORACLE/PRODUCT/10.2.0/ORADATA/SUPERMAPDB/.DBF'


SQL>

这显示按他的方法是没办法解决该问题的。

结果我仔细发现   E:/DataBase/oracle/product/10.2.0/oradata/SuperMapDB   文件夹下没有.DBF文件。只有  SUPERMAPDB.DBF  文件。我想这个SUPERMAPDB.DBF有可能就是  .DBF  文件  所以我就是把SUPERMAPDB.DBF文件更改成.DBF。在重试了上面的方法。结果出现了ORA-16038、 ORA-19809、 ORA-00312错误!

我又按照下面解决方法,

(2)解决ORA-16038 ORA-19809 ORA-00312方法

Oracle 10g默认的归档日志存放在flash_recovery_area,而默认安装的时候该区间选择了1G大小
当归档日志超过1G的时候,空间不足,于是无法归档,当时手工删除归档日志文件,Oracle是无法识别空间是否释放。导致数据库无法启动

解决办法:
1、mount数据库
sql> startup mount            (注意,这时候还会报错,但是可以更改系统参数)

2、 更改系统参数
sql> alter system set  db_recovery_file_dest_size=2g scope=spfile;

{或者 ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=4G SCOPE=BOTH;}
参数db_recovery_file_dest_size的值根据磁盘剩余空间大小和实际需要来设置,没有定论

3、打开数据库
sql> alter database open


4、删除失效归档日志.
rman
RMAN> connect target /
RMAN> crosscheck archivelog all;
RMAN> delete expired archivelog all;
RMAN> exit

5、重新启动数据库

sql> shutdown immediate
sql> startup


我的supermapdb数据库又重新恢复了

OK,一切正常!真是惭愧,感谢大家支持和帮助。

猜你喜欢

转载自liuguidong.iteye.com/blog/2020783
今日推荐