归档日志已满ORA-00257问题
2016年4月3日 14:30
客户环境:LINUX + RAC
客户端账号登录,报错提示:ORA-00257: archiver error. Connect internal only, until freed
使用PUTTY连接服务器
进入oracle账户:
[root@hisrac2 ~]# su - oracle
[oracle@hisrac2 ~]$ sqlplus
SQL*Plus: Release 10.2.0.4.0 - Production on 星期日 4月 3 15:06:57 2016
Copyright (c) 1982, 2007, Oracle. ALL Rights Reserved.
SQL>conn / as sysdba;
Connected.
SQL>Archive log list;
Database log mode Archive Mode
Automatic archive Enabled
Archive destination /u01/app/oracle/archivelog
Oldest online log sequence 1716
[oracle@hisrac2 ~]$ RMAN TARGET/
恢复管理器: Release 11.2.0.1.0 - Production on 星期二 4月 5 15:23:09 2016
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到目标数据库: ORCL (DBID=1285975621)
--清除45天之前的归档日志;
RMAN>DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-45';
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=30 设备类型=DISK
db_unique_name 为 ORCL 的数据库的归档日志副本列表
=====================================================================
关键字 线程序列 S 时间下限
------- ---- ------- - ----------
173 1 142 A 31-3月 -16
名称: \u01\app\oracle\archivelog\2016_04_02\O1_MF_1_142_CHYQF6FK_.ARC
174 1 143 A 01-4月 -16
名称: \u01\app\oracle\archivelog\\2016_04_02\O1_MF_1_143_CHYQFH52_.ARC
175 1 144 A 01-4月 -16
名称: \u01\app\oracle\archivelog\2016_04_02\O1_MF_1_144_CHYQH98G_.ARC
176 1 145 A 02-4月 -16
名称: \u01\app\oracle\archivelog\2016_04_02\O1_MF_1_145_CHYQNRXX_.ARC
177 1 146 A 02-4月 -16
名称:\u01\app\oracle\archivelog\016_04_02\O1_MF_1_146_CHYQNX6S_.ARC
178 1 147 A 02-4月 -16
名称: \u01\app\oracle\archivelog\2016_04_02\O1_MF_1_147_CHYQRC6C_.ARC
………
是否确定要删除以上对象 (输入 YES 或 NO)?YES
已删除的归档日志
归档日志文件名=\u01\app\oracle\archivelog\2016_04_02\O1_MF_1_142_CHYQF6FK_.ARC RECID=173 STAMP=908113836
已删除的归档日志
归档日志文件名=\u01\app\oracle\archivelog\2016_04_02\O1_MF_1_143_CHYQFH52_.ARC RECID=174 STAMP=908113848
……….
XX 对象已删除
RMAN>
客户端账号重新登录,正常。
处理总结:
遇到报错提示:ORA-00257: archiver error. Connect internal only, until freed
--先查询ARCHIVED LOG的使用率,结果超过99%时说明归档日志已经满了
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE where file_type='ARCHIVED LOG';
--(1).处理方法一:增大归档日志路径限额大小
--查看归档日志路径限额
SQL> show parameter db_recovery_file_dest;
NAME TYPE VALUE
------------------------------- ------------ ------------------------------
db_recovery_file_dest string D:\app\Administrator\flash_recovery_area
db_recovery_file_dest_size big integer 4000M
--可以调整db_recovery_file_dest_size大小(10*1024*1024*1024),10GB
SQL> alter system set db_recovery_file_dest_size=10737418240;
--(2).处理方法一:删除归档日志文件
--RMAN登录交叉检查
RMAN> crosscheck archivelog all;
--删除过期归档日志
RMAN> delete expired archivelog all;
--删除指定时间以前的归档日志...
RMAN>DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
以下附件RMAN_DelArc.rar
个人制作了一个windows环境下的.bat的文件,功能如下
(1).双击可删除所有归档日志;
(2).并生成一个日志文件;
(3).每次执行会清空日志文件内容,重新写入生成日志内容。