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

默认的恢复区包含了如下内容,如果产生归档日志满等情况,需要重新设置恢复区大小。

CONTROL FILE
REDO LOG
ARCHIVED LOG
BACKUP PIECE
IMAGE COPY
FLASHBACK LOG
FOREIGN ARCHIVED LOG

如果数据已经被停止可重新拉起,在mount状态下修改

$ sqlplus / as sysdba

SQL> startup nomount;
SQL> alter database mount;

恢复区使用和分配情况

查询闪回配置路径和大小

SQL> show parameter recover;

查询闪回区使用占比

SQL> col FILE_TYPE for a25
SQL> select * from v$flash_recovery_area_usage;

查询闪回区位置、分配和使用

SQL> col name for a30
SQL> set line 100
SQL> select name,space_limit/1024/1024/1024,space_used/1024/1024/1024,number_of_files from v$recovery_file_dest;

修改恢复区大小和位置

修改恢复区大小,如果只是设置问题,磁盘空间充足可以直接增大配置

SQL> alter system set db_recovery_file_dest_size=50G scope=both;

如果是无法在当前空间扩充,删除当前的恢复区,重新设置。

SQL>alter system set db_recovery_file_dest='/u01/backup/newflasharea';

清除归档日志释放空间

如果是空间有限想清除不在使用的日志,使用CROSSCHECK和DELETE OBSOLETE指令删除不需要的文件,或者使用DELETE EXPIRED 指令删除那些不需要的备份文件。或者使用RMAN的BACKUP RECOVERY AREA指令将恢复区中的文件复制到磁带中。

$ rman target /

切换到rman命令后检查归档日志是否失效:

RMAN> crosscheck archivelog all;

删除失效归档日志,即删除物理文件已丢失但记录在rman中的归档日志

-- 删除过期的归档日志
RMAN> delete expired archivelog all;
-- 删除指定日期前的归档日志
RMAN> delete archivelog until time 'sysdate-30';

[ 编辑 | 历史 ]
最近由“jilili”在“2022-04-15 09:16:23”修改