问题描述:本人那次用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,一切正常!真是惭愧,感谢大家支持和帮助。