1,oracle数据库正常使用中,突然报ora-00257的错误,原因是归档日志满了,达到了oracle设置的满值的状态了,所以会无法连接了。
2,system登录数据库查看使用率和归档文件目录
SQL> show parameter log_archive_dest;
3, archive log list;检查一下归档目录和log sequence ,此时在序号512之前的都可以删除。
SQL> archive log list;
4,检查flash recovery area的使用情况,查看archivelog使用率:99% (这里因为已经清理过了,没来得及截图,第一次清理时有99%)
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
5,计算flash recovery area已经占用的空间 (已经清理过。没清理之前是2.99)
SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;
6,找到recovery的目录
SQL> show parameter recover;
7,手动删除过期的归档文件
归档位置用的是默认值,放在flash_recovery_area下(db_recovery_file_dest目录=
/oracle/flash_recovery_area)
8,在删除归档日志后,必须用RMAN维护控制文件,否则空间显示仍然不释放。(rman使用system用户登录,或者自创的chen用户登录,必须要有dba的权限)
[oracle@pen archivelog]$ rman target chen/chen
9. 检查一些无用的archivelog
RMAN> crosscheck archivelog all;
10, 删除过期的归档
RMAN> delete expired archivelog all; ------> 输入“YES” 确认。
11,再次查询,发现使用率正常,已经降到19.57
SQL> sqlplus / as sysdba
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;