Oracle RMAN 清除归档日志

本文介绍了在Oracle环境中,如何使用RMAN清除归档日志,包括手动删除、RMAN删除方式及其不同条件,强调RMAN清除的彻底性,并提供了简单的shell脚本示例。建议在生产环境使用RMAN配合备份操作进行归档日志的清理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

               

      在开发环境及UAT环境经常碰到需要清除归档日志的情形,对于这个问题方法有很多。可以直接使用rm方式清除归档日志,也可以使用find命令来查找符合条件的记录来清除归档日志,或者直接写个shell脚本来搞定。这样在DEV或者UAT还可以,但是在Prod环境还是建议使用RMAN提供的命令来搞定比较妥当。因为rm,find方式删除了实际的归档日志也释放了空间,但对应的存储在控制文件中的归档信息并没有彻底清除。依旧占用着一些空间未能及时清除而需要控制文件通过age out方式来释放空间。本文描述了使用RMAN方式来清除归档日志,同时也可以将其部署到shell脚本中使用。

 

  有关阅读本文需要的相关参考
      Oracle 归档日志
      Oracle 控制文件(CONTROLFILE)
      Oracle 联机重做日志文件(ONLINE LOG FILE)
      delete archivelog all 无法彻底删除归档日志?
      Linux/Unix shell 脚本中调用SQL,RMAN脚本
      Linux/Unix shell 脚本清除归档日志文件

 

1、清除归档日志的方式

a、手动删除
      使用rm 或者find方式来删除,通过该方式删除之后,在RMAN下可以通过 crosscheck archivelog all 校验归档是否失效,如下面的操作:
       rm -rf arch_816906485_1_10.arc 
    find /u02/database/GOBO1/archive/ -ctime +0 -delete
    RMAN> crosscheck archivelog all

b、使用RMAN方式清除
      RMAN清除方式会自动清除磁盘上的归档日志文件,同时会释放控制文件中对应的归档日志的归档信息。
      可以基于不同的条件来清除归档日志,如基于SCN,基于SEQUENCE,基于TIME等方式。
      对于上述的三种方式又可以配合from, until, between .. and .. 等等子句来限定范围,方式灵活多变。
      下面的命令用于校验归档日志的有效性,列出无效的归档日志,以及以何种方式清除归档日志,列出几种常用的: 
                 crosscheck archivelog all;                             --->校验日志的可用性
          list expired archivelog all;                           --->列出所有失效的归档日志
          delete archivelog until sequence 16;                   --->删除log sequence为16及16之前的所有归档日志
          delete archivelog all completed before 'sysdate-7';    --->删除系统时间7天以前的归档日志,不会删除闪回区有效的归档日志
          delete archivelog all completed before 'sysdate - 1';  --->同上,1天以前的
          delete archivelog from time 'sysdate-1';               --->注意这个命令,删除系统时间1天以内到现在的归档日志
          delete noprompt archivelog all completed before 'sysdate';   --->该命令清除所有的归档日志
          delete noprompt archivelog all;                              --->同上一命令
    
2、演练使用RMAN清除归档日志  

robin@SZDB:~> export ORACLE_SID=GOBO1robin@SZDB:~> rman target /Recovery Manager: Release 10.2.0.3.0 - Production on Thu Jul 11 17:07:00 2013Copyright (c) 1982, 2005, Oracle.  All rights reserved.connected to target database: GOBO1 (DBID=733951103)RMAN> host;robin@SZDB:~> cd /u02/database/GOBO1/archive/robin@SZDB:/u02/database/GOBO1/archive> ls      arch_816906485_1_10.arc      arch_816906485_1_12.arc  arch_816906485_1_11.arc      arch_816906485_1_13.arc      ............robin@SZDB:/u02/database/GOBO1/archive> rm -rf arch_816906485_1_10.arc arch_816906485_1_11.arc arch_816906485_1_12.arcrobin@SZDB:/u02/database/GOBO1/archive> exit;exit                                         host command complete                                                                     RMAN> crosscheck archivelog all;                 released channel: ORA_DISK_1                                                                       allocated channel: ORA_DISK_1                                                                      channel ORA_DISK_1: sid=1075 devtype=DISK                                                          archive log filename=/u02/database/GOBO1/archive/arch_816906485_1_9.arc recid=2085 stamp=817211151 va
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值