Oracle RMAN 清除归档日志

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


有关阅读本文需要的相关参考


Oracle 归档日志 http://www.linuxidc.com/Linux/2011-03/33070.htm


Oracle 控制文件(CONTROLFILE) http://www.linuxidc.com/Linux/2011-03/33069.htm


Oracle 联机重做日志文件(ONLINE LOG FILE) http://www.linuxidc.com/Linux/2011-03/33068.htm


Linux/Unix shell 脚本中调用SQL,RMAN脚本 http://www.linuxidc.com/Linux/2012-09/70310.htm


Linux/Unix shell 脚本清除归档日志文件 http://www.linuxidc.com/Linux/2013-04/82808.htm


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=GOBO1
robin@SZDB:~> rman target /


Recovery Manager: Release 10.2.0.3.0 - Production on Thu Jul 11 17:07:00 2013


Copyright (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.arc


RMAN> delete archivelog until sequence 16;


released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=1075 devtype=DISK


List 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.arc


Do 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 objects


RMAN> delete archivelog all completed before 'sysdate-7';


released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=1075 devtype=DISK


List 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.arc


RMAN> delete archivelog from time 'sysdate-1';


released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=1075 devtype=DISK


List 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.arc


Do 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 objects


RMAN> delete archivelog all completed before 'sysdate - 1';


released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=1075 devtype=DISK


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
              .......................
2164    1    88      A 20130709 23:19:34 /u02/database/GOBO1/archive/arch_816906485_1_88.arc


Do 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 objects


RMAN> sql " alter system archive log current";


sql statement:  alter system archive log current


RMAN> 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.arc


RMAN> delete noprompt archivelog all completed before 'sysdate';


released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=1075 devtype=DISK


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.arc
deleted archive log
archive log filename=/u02/database/GOBO1/archive/arch_816906485_1_91.arc recid=2167 stamp=820517964
Deleted 1 objects


本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2013-07/87298.htm
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩好几天不大便怎么办 婴儿10天不拉屎怎么办 3岁大便拉不出来怎么办 孩子大便拉不出来怎么办 4岁大便拉不出来怎么办 排位队友太坑怎么办 lol遇到坑b队友怎么办 被冷暴力分手后怎么办 孕早期半夜饿了怎么办 怀孕了月经还来怎么办 大米生虫子吃了怎么办 老公有外遇不回家怎么办 老公和小三有了孩子怎么办 祖坟给人挖了怎么办 妯娌关系和不来怎么办 婆婆老说我不好怎么办 婆婆对我妈不好怎么办 老公嫌老婆胸小怎么办 牙上颚的肉肿了怎么办 乐视手机音量小怎么办 手表日期调过了怎么办 机械表日期不走怎么办 差银行钱还不起怎么办 有人威胁要杀我怎么办 受人威胁要打我怎么办 胳膊起疙瘩很痒怎么办 后背长很多痘痘怎么办 肩膀两边长痘痘怎么办 红酒喝了过敏了怎么办 脚底长湿疹很痒怎么办 怀孕脚痒怎么办小窍门 孕妇烂脚丫和痒怎么办 腿上都是红血丝怎么办 全身皮肤干痒怎么办啊 脸过敏干痒脱皮怎么办 脸过敏了特别干怎么办 太阳晒后皮肤红怎么办 皮肤晒过后很痒怎么办 脸突然又红又痒怎么办 膝盖又红又痒怎么办 脸又红又痒怎么办