Oracle手动删除归档日志厚,出现ORA-19571错误

一、使用以下的命令清理了空间:

1.   cd /orabak
2.   find . -type f -mtime +30 -exec rm -rf {} \;

二、然后开始使用rman备份的脚本进行备份,备份到最后出现以下报错

-------------------------------------------------------------------------------------------
archive log filename=/oralog/1_20800_812554797.dbf recid=20799 stamp=839154512
archive log filename=/oralog/1_20801_812554797.dbf recid=20800 stamp=839154513
released channel: ch1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
 
RMAN-03009: failure of backup command on ch1 channel at 02/10/2014 10:33:46
ORA-19571: archived-log recid 19009 stamp 837863118 not found in control file
-------------------------------------------------------------------------------------------

三、分析及处理过程

1、当手工删除了归档日志以后,Rman备份会检测到日志缺失,从而无法进一步继续执行。

所以此时需要手工执行crosscheck过程,之后Rman备份可以恢复正常。

2、Crosscheck日志

$ rman target /
RMAN> crosscheck archivelog all;#Oracle 9i及以后的版本用crosscheck archivelog all;
RMAN> change archivelog all crosscheck; #Oracle 8i中用change archivelog all crosscheck;

3、再次运行备份脚本

--
archive log filename=/oralog/1_20887_812554797.dbf recid=20886 stamp=839198925 archive log filename=/oralog/1_20888_812554797.dbf recid=20887 stamp=839198982 archive log filename=/oralog/1_20889_812554797.dbf recid=20888 stamp=839199982 archive log filename=/oralog/1_20890_812554797.dbf recid=20889 stamp=839199982 Finished backup at 10-FEB-14
Starting backup at 10-FEB-14
channel ch1: starting full datafile backupset channel ch1: specifying datafile(s) in backupset including current control file in backupset channel ch1: starting piece 1 at 10-FEB-14 channel ch1: finished piece 1 at 10-FEB-14 piece handle=/orabak/control_11839200079688 tag=TAG20140210T230759 comment=NONE channel ch1: backup set complete, elapsed time: 00:00:01 Finished backup at 10-FEB-14
released channel: ch1
--
完成

4、参考资料

http://www.eygle.com/archives/2004/12/rman_crosscheck.html

5、rman的备份脚本

run{
allocate channel ch1 device type DISK;
backup full filesperset 50
database format‘/orabak/full_%c_%p_%t_5s‘;
sql ‘alter system archive log current‘;
backup  filesperset 50 archivelog all
format ‘/orabak/arch%c%p%t%s‘ delete input;
backup current controlfile 
format  ‘/orabak/control_%c%p%t%s‘;
release channel ch1;
}
时间: 2024-08-03 07:52:50

Oracle手动删除归档日志厚,出现ORA-19571错误的相关文章

oracle 删除归档日志的正确方式

在使用plsql使用游标的%rowcount时,导致了一个死循环,手动终止后数据库无法连接,服务重启后依然不行.windows日志管理器报归档日志相关的错误,最终手动启动到mount状态,禁用归档日志后,数据库正常.由于是本机的实验数据库,所以希望把归档日志删掉: 以下摘自这里ORACLE正确删除归档并回收空间的方法 一个ORACLE归档日志经常满,表现为/oraarchive 这个文件空间占用100%大家一定抱怨ORACLE为何没有归档维护工具,很多人直接删除了事,错了,ORACLE有,而且很

当ORACLE归档日志满后如何正确删除归档日志

当ORACLE 归档日志满了后,将无法正常登入ORACLE,需要删除一部分归档日志才能正常登入ORACLE. 一.首先删除归档日志物理文件,归档日志一般都是位于archive目录下,AIX系统下文件格式为“1_17884_667758186.dbf”,建议操作前先对数据库进行备份,删除时至少保留最近几天的日志用于数据库恢复. 二.把归档日志的物理文件删除后,我们就可以正常登入ORACLE了,但是还没完全把归档日志删除干净,ORACLE的controlfile中仍然记录着这些archivelog的

delete archivelog all 无法彻底删除归档日志?

最近在因归档日志暴增,使用delete archivelog all貌似无法清除所有的归档日志,到底是什么原因呢? [python] view plain copy print? 1.演示环境 SQL> select * from v$version where rownum<2; BANNER ---------------------------------------------------------------- Oracle Database 10g Release 10.2.0.

db_recovery_file_dest_size 修改大一点及删除归档日志 |转|

今天给客户测 试问题,让客户把数据发过来了.解压缩后一看,他们还是用的oracle 815版本的(他们exp导出时,带了导出日志,从导出日志中看出来是oracle 815版本的),不过没有关系,低版本的exp是可以用高版本的imp导入到高版本数据库中的.一看是导入还很正常,导入到其中某个表的时候,突然就不动 了.一开始我还没有弄明白怎末回事.后来,无意中看到了 计算机管理--事件查看器中 ,有很多报错信息: Archive process error: ORA-16038: log 1 sequ

RMAN删除归档日志不释放问题

今天同事问到一个问题,他那边的一套Oracle 11g数据库使用RMAN没办法删除旧的归档,导致磁盘使用率很高. [email protected]:[/opt/oracle/archive/db] ls -ltr |moretotal 3059881082 -rw-r-----   1 oracle     oinstall   725320704 May 20  2016 1_1_91233774.dbf -rw-rw----   1 oracle     oinstall   175693

通过RMAN删除归档日志不释放问题

我的生产环境中归档日志满了,通过如下脚本删除后,空间并没有释放,看有网友有相关的解决思路,可以跟大家一起分享一下: RMAN> crosscheck archivelog all; RMAN> delete expried archivelog all; 关于rm删除文件空间不释放的问题可以写成一个FAQ了 一般说来不会出现rm掉不释放空间的情况出现这样的情况一般是由于有进程在向文件中写数据或有进程正在访问文件而此时rm文件则会出现不释放空间的情况 理解这样的问题需要理解rm的操作内含一个文件

Oracle数据库删除归档

删除归档日志脚本如下: [[email protected] oracle]$  vim del_archive.log #!/bin/bash export  ORACLE_SID=oggmaster         --实例名 /u01/app/oracle/product/11.2.0/dbhome_1/bin/rman log=/var/log/archive_orcl.log <<EOF connect target / crosscheck archivelog all; dele

Linux下设置定时任务删除归档日志

1.编辑删除归档日志的脚本----/home/oracle/clearlog.sh #! /bin/bash source ~/profile_orcl#记录归档删除的日志exec >> /home/rman_log/log/del_arch`date +%F-%H`.log $ORACLE_HOME/bin/rman target / <<EOF#检查归档crosscheck archivelog all; #列出无效的归档日志list expired archivelog al

Oracle 11g正确删除归档日志方法

1.用oracle用户登陆rman RMAN>rman target / 2.列出并确认归档日志路径 RMAN>list archivelog all; 3.删除7天以前的归档日志 RMAN>DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; 说明: SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志. 同样道理,也可以删除从7天前到现在的全部日志,不过这个命令要考虑清楚,做完这个删除,最好马上进行全