关注IT专业技能,持续提升竞争力。

ORA-00257: archiver error. Connect internal only, until freed

Oracle 仙人球 2338℃ 0评论

【错误信息】

ORA-00257: archiver error. Connect internal only, until freed

【错误原因】
归档日志满了,导致无法连接到数据库;严重时,甚至会出现数据库无法重启状态,一直挂死;

【解决方式】

查看闪回区(Flash Recovery Area)的使用情况:
select * from V$FLASH_RECOVERY_AREA_USAGE;

其中archivelog的percent_space_used就是当前归档日志的使用率;

由于使用率过高,会导致出现重启数据库失败,所以先增加闪回区(Flash Recovery Area)的大小。
alter system set db_recovery_file_dest_size=3G scope=both;

有用的SQL:
1.查看flash_recovery_area的位置和大小:show parameter recover;
2.查看flash_recovery_area的使用情况:select * from V$FLASH_RECOVERY_AREA_USAGE;
3.查看archive是否已启用,及archive目标位置:archive log list;
删除archive log :
(1)手工删除,用系统级命令删除(如rm -rf)删除归档日志的物理文件后,还不行,因为Oracle的controlfile中仍然记录着这些archivelog的信息,所以在删除归档日志后,必须用RMAN维护控制文件,否则空间显示仍然不释放。方法是:
1)[root@sha3 oracle]# rman target sys/pass
2)RMAN> crosscheck archivelog all;
3)RMAN> delete expired archivelog all;
还可以这样:delete archivelog until time ‘sysdate-1′ ; 删除截止到前一天的所有archivelog。

恢复闪回区大小;

附:

可以用以下步骤启用archivelog:
1. SQL> alter system set log_archive_dest_1=’location=/oracle/oracle10g/log/archive_log’;
该语句含义是确定归档日志的路径,实际上Oracle 10g可以生成多份一样的日志,保存多个位置,以防不测
例如再添加一个日志位置可使用以下语句
SQL>alter system set log_archive_dest_2=’location=/oracle/oracle10g/log2/archive_log’;
2.关闭数据库
SQL> shutdown immediate
3.启动数据mount状态:
SQL> startup mount;
4、修改数据库为归档模式:
SQL> alter database archivelog;
5、打开数据库,查询:
SQL> alter database open;
修改日志文件命名格式:
SQL> alter system set log_archive_max_processes = 5;
SQL> alter system set log_archive_format = “archive_%t_%s_%r.log” scope=spfile;

转载请注明:V-Lover » ORA-00257: archiver error. Connect internal only, until freed

喜欢 (8)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(3)个小伙伴在吐槽
  1. 1111
    ces2016-07-09 14:22 回复
  2. 很厉害
    澳门银座官网2016-07-12 16:00 回复
  3. 赞一个 很不错
    新澳门银座2016-07-12 16:01 回复