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了!