Welcome 微信登录

首页 / 数据库 / MySQL / Oracle RMAN 清除归档日志

在开发环境及UAT环境经常碰到需要清除归档日志的情形,对于这个问题方法有很多。可以直接使用rm方式清除归档日志,也可以使用find命令来查找符合条件的记录来清除归档日志,或者直接写个shell脚本来搞定。这样在DEV或者UAT还可以,但是在Prod环境还是建议使用RMAN提供的命令来搞定比较妥当。因为rm,find方式删除了实际的归档日志也释放了空间,但对应的存储在控制文件中的归档信息并没有彻底清除。依旧占用着一些空间未能及时清除而需要控制文件通过age out方式来释放空间。本文描述了使用RMAN方式来清除归档日志,同时也可以将其部署到shell脚本中使用。有关阅读本文需要的相关参考Oracle 归档日志 http://www.linuxidc.com/Linux/2011-03/33070.htmOracle 控制文件(CONTROLFILE) http://www.linuxidc.com/Linux/2011-03/33069.htmOracle 联机重做日志文件(ONLINE LOG FILE) http://www.linuxidc.com/Linux/2011-03/33068.htmLinux/Unix shell 脚本中调用SQL,RMAN脚本 http://www.linuxidc.com/Linux/2012-09/70310.htmLinux/Unix shell 脚本清除归档日志文件 http://www.linuxidc.com/Linux/2013-04/82808.htm1、清除归档日志的方式a、手动删除使用rm 或者find方式来删除,通过该方式删除之后,在RMAN下可以通过 crosscheck archivelog all 校验归档是否失效,如下面的操作:rm -rf arch_816906485_1_10.arcfind /u02/database/GOBO1/archive/ -ctime +0 -deleteRMAN> crosscheck archivelog allb、使用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=GOBO1
robin@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.arc
robin@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
validation failed for archived log                                                               
archive log filename=/u02/database/GOBO1/archive/arch_816906485_1_10.arc recid=2086 stamp=817250793
      ..............
validation succeeded for archived log                                                             
archive log filename=/u02/database/GOBO1/archive/arch_816906485_1_90.arc recid=2166 stamp=820458049
Crosschecked 83 objects                   RMAN> list expired archivelog all;List of Archived Log Copies
Key    Thrd Seq    S Low Time          Name
------- ---- ------- - ----------------- ----
2086    1    10      X 20130604 11:05:51 /u02/database/GOBO1/archive/arch_816906485_1_10.arc
2087    1    11      X 20130604 22:06:17 /u02/database/GOBO1/archive/arch_816906485_1_11.arc
2088    1    12      X 20130605 19:30:53 /u02/database/GOBO1/archive/arch_816906485_1_12.arcRMAN> delete archivelog until sequence 16;released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=1075 devtype=DISKList of Archived Log Copies
Key    Thrd Seq    S Low Time          Name
------- ---- ------- - ----------------- ----
2084    1    8      A 20130604 09:53:17 /u02/database/GOBO1/archive/arch_816906485_1_8.arc
                        .................
2092    1    16      A 20130607 22:03:23 /u02/database/GOBO1/archive/arch_816906485_1_16.arcDo you really want to delete the above objects (enter YES or NO)? yes
          ...............
deleted archive log
archive log filename=/u02/database/GOBO1/archive/arch_816906485_1_16.arc recid=2092 stamp=817516861
Deleted 9 objectsRMAN> delete archivelog all completed before "sysdate-7";released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=1075 devtype=DISKList of Archived Log Copies
Key    Thrd Seq    S Low Time          Name
------- ---- ------- - ----------------- ----
2093    1    17      A 20130608 00:01:00 /u02/database/GOBO1/archive/arch_816906485_1_17.arc
2094    1    18      A 20130608 18:00:17 /u02/database/GOBO1/archive/arch_816906485_1_18.arc
            ...........
deleted archive log
archive log filename=/u02/database/GOBO1/archive/arch_816906485_1_72.arc recid=2148 stamp=819847035
Deleted 56 objects           RMAN> list copy of database archivelog all;
List of Archived Log Copies
Key    Thrd Seq    S Low Time          Name
------- ---- ------- - ----------------- ----
2149    1    73      A 20130703 23:17:13 /u02/database/GOBO1/archive/arch_816906485_1_73.arc
2150    1    74      A 20130704 22:00:19 /u02/database/GOBO1/archive/arch_816906485_1_74.arc
2151    1    75      A 20130704 22:04:40 /u02/database/GOBO1/archive/arch_816906485_1_75.arc
                      ...............
2164    1    88      A 20130709 23:19:34 /u02/database/GOBO1/archive/arch_816906485_1_88.arc
2165    1    89      A 20130710 13:00:34 /u02/database/GOBO1/archive/arch_816906485_1_89.arc
2166    1    90      A 20130710 22:02:44 /u02/database/GOBO1/archive/arch_816906485_1_90.arcRMAN> delete archivelog from time "sysdate-1";released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=1075 devtype=DISKList of Archived Log Copies
Key    Thrd Seq    S Low Time          Name
------- ---- ------- - ----------------- ----
2165    1    89      A 20130710 13:00:34 /u02/database/GOBO1/archive/arch_816906485_1_89.arc
2166    1    90      A 20130710 22:02:44 /u02/database/GOBO1/archive/arch_816906485_1_90.arcDo you really want to delete the above objects (enter YES or NO)? yes
deleted archive log
archive log filename=/u02/database/GOBO1/archive/arch_816906485_1_89.arc recid=2165 stamp=820447373
deleted archive log
archive log filename=/u02/database/GOBO1/archive/arch_816906485_1_90.arc recid=2166 stamp=820458049
Deleted 2 objectsRMAN> delete archivelog all completed before "sysdate - 1";released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=1075 devtype=DISKList of Archived Log Copies
Key    Thrd Seq    S Low Time          Name
------- ---- ------- - ----------------- ----
2149    1    73      A 20130703 23:17:13 /u02/database/GOBO1/archive/arch_816906485_1_73.arc
              .......................
2164    1    88      A 20130709 23:19:34 /u02/database/GOBO1/archive/arch_816906485_1_88.arcDo you really want to delete the above objects (enter YES or NO)? yes
    ................
archive log filename=/u02/database/GOBO1/archive/arch_816906485_1_88.arc recid=2164 stamp=820414835
Deleted 16 objectsRMAN> sql " alter system archive log current";sql statement:  alter system archive log currentRMAN> list copy of archivelog all;
List of Archived Log Copies
Key    Thrd Seq    S Low Time          Name
------- ---- ------- - ----------------- ----
2167    1    91      A 20130711 01:00:48 /u02/database/GOBO1/archive/arch_816906485_1_91.arcRMAN> delete noprompt archivelog all completed before "sysdate";released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=1075 devtype=DISKList of Archived Log Copies
Key    Thrd Seq    S Low Time          Name
------- ---- ------- - ----------------- ----
2167    1    91      A 20130711 01:00:48 /u02/database/GOBO1/archive/arch_816906485_1_91.arc
deleted archive log
archive log filename=/u02/database/GOBO1/archive/arch_816906485_1_91.arc recid=2167 stamp=820517964
Deleted 1 objects
  • 1
  • 2
  • 下一页
MongoDB在PHP下的应用学习笔记Fedora 18 安装完MySQL 无法启动问题相关资讯      RMAN  Oracle除归档日志 
  • RMAN故障一例(归档的备份,从不  (今 20:42)
  • RMAN的FORMATA格式说明  (03月10日)
  • Oracle 11g RMAN复制数据库的测试  (01月19日)
  • RMAN数据库迁移  (05月22日)
  • 使用RMAN复制恢复开发库环境  (02月17日)
  • Oracle 11g RMAN跨平台传输表空间  (01月19日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数