修复了Oracle的ORA-01033错误
今天数据库日志满了,然后同事删除了一部分日志,空出来一部分的磁盘空间,但是却发现数据库怎么都起不来,一直报告ORA-01033错误, ORACLE initialization or shutdown in progress. 强制Shutdown immediate之后再Startup结果报告: ORA-00313: open failed for members of log group 1 of thread 1 ORA-00312: online log 1 thread 1: 'xx\redo1.log' 上网搜索发现是数据库日志读取出问题了. 于是开始检索解决的办法: 先查询出错的这个Log 1是否是当前使用中的日志: SQL>select group#,sequence#,archived,status from v$log; 得到的结果是 GROUP# SEQUENCE# ARCHIVED STATUS ---------- ---------- -------- ---------------- 1 1 NO INACTIVE 2 2 NO INACTIVE 3 3 NO CURRENT 解决的办法是: alter database clear unarchived logfile group 1; 然后很正确的提示了 Database Altered. 之后再Shutdown一次再Startup一次就好了. 但是值得注意的是: 1、这种办法恢复的数据库是一致的不完全恢复,会丢失当前联机日志中的事务数据 2、这种方法适合于归档数据库并且有可用的数据库全备份。 3、恢复成功之后,记得再做一次数据库的全备份。 4、建议联机日志文件一定要实现镜相在不同的磁盘上,避免这种情况的发生,因为任何数据的丢失对于生产来说都是不容许的。 但是我们局内的数据库是无所谓数据一致性的,因为并没有那么强的实时性的要求.于是很顺理成章的就完成了了事~ 相关材料引用自: http://www.cnblogs.com/jimeper/archive/2008/04/14/1153234.html