当前位置:数据库 > Oracle >>

Oracle RMAN清除归档日志

Oracle RMAN清除归档日志
 
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清除归档日志  
[python] 
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 ab
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,