ORACLE数据库连接问题:ORA-00257解决

猛然发现数据库连不上了,报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了!

标签