今天公司的同事反映oracle 11g数据库打不开,提示如下:
查看位于/u01/app/oracle/diag/rdbms/orcl/orcl/trace的alert_orcl.log日志如下:
初步判断是归档日志所在的闪回区容量不足导致,解决步骤如下:
操作系统下执行rm -rf *物理删除所有归档日志,然后执行以下命令:
rman target /
startup mount;
crosscheck archivelog all;
delete expired archivelog all;
alter database open;
下面是我整理的关于清理归档日志的两种方法,大家可以参照一下:
oracle 的归档日志,达到设置的极限值之后,数据库就不能使用了。 出现的错误提示是: ORA-00257: archiver error. Connect internal only, until freed 那么这时候可以选择把它的日志文件移动到别的地方去,然后去去删除参数文件里面的值
方法一:
1、查看归档日志文件位置
sqlplus / as sysdba
archive log list;
或者
RMAN> list archivelog all;
2、操作系统下运行rm -rf 删除归档日志或者cp到其它目录;
3、从控制文件中校验归档日志,将过期的清除
rman target /
crosscheck archivelog all;
delete expired archivelog all;
注:其实可以在rman直接执行以下命令删除归档日志,既删除了控制文件中的相关信息,也删除了物理文件,但由于归档日志在介质恢复时会用到,删除需谨慎。
delete archivelog all completed before 'sysdate-7'; (删除七天前的归档日志)
方法二:
1、先备份然后再删除,物理文件会一并删除
backup archivelog all format '/home/oracle/archbackup/db1_arch_%U' delete input;
对于rman crosscheck的详细用法,请见http://blog.youkuaiyun.com/chunhua_love/article/details/16819033