Oracle数据库ORA-00257解决

今天Oracle数据库突然连不上了,报ORA-00257错误(空间不足错误),通过查找资料,绝大部分说这是由于Archivelog归档日志太多,占用了全部的硬盘剩余空间导致的,通过简单删除日志或加大存储空间就能够解决。

首先进入oracle用户,使用rman工具执行命令rman target/:

oracle@test-idm-db01$ rman target/ 

Recovery Manager: Release 11.2.0.1.0 - Production on Wed May 15 09:29:06 2013 

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved. 
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: initialization of internal recovery manager package failed
RMAN-04005: error from target database:
ORA-01031: insufficient privileges

竟然报错了,如果你的空间100%一点剩余都没有,那么就会报这个错,只能想办法让你的系统腾出一点空间,哪怕几百兆!然后重启数据库应该就可以登陆dba了。

重启数据库,再次rman

oracle@test-idm-db01$ rman target/ 

Recovery Manager: Release 11.2.0.1.0 - Production on Wed May 15 09:29:40 2013 

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved. 

connected to target database: IDM_TEST (DBID=4064060693)

现在删除Archivelog归档文件,执行下面的命令来删除最近7天的归档:

RMAN> DELETE ARCHIVELOG FROM TIME 'SYSDATE-7';

也可以只保留最近7天的,其余的都删除:

RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

但是过一段时间你的日志还是回满,对于开发环境这样的归档功能其实没什么必要,彻底解决办法是关闭这个功能,用dba登陆oracle:

sqlplus / as sysdba;

然后执行下面的命令:

SQL> alter database flashback off;

然后重启数据库就OK了!

相关推荐