如何删除彻底归档日志文件


--测试环境:
--虚拟机下  Redhat5.4(bit)
--Oracle 11G R2(64bit) 
 
--注意:语句只能在实验环境下执行,切勿在生产环境下执行!




 
ps:
--这个符号是解释
有颜色字体标示是需要注意的地方


--以下是我的操作步骤,大家可以一步一步跟练习,由于每个命令都有解析,所以就算没有什么oracle基础也行
--由于本人水平有限,也是处于学习充电阶段,大家有什么问题欢迎提出哦,咱们一起解决,嘿嘿
 
 
[root@orcl ~]# su – oracle
 
--设置一下ORACLE_SID
[oracle@orcl ~]$ export ORACLE_SID=denver
 
--查看一下denver实例是否启动
[oracle@orcl ~]$ ps -ef|grep oracle
root    27264  6887  0 04:23 tty1     00:00:00 su - oracle
oracle  27265 27264  0 04:23 tty1     00:00:00 -bash
root    29670 29641  0 09:43 pts/1    00:00:00 su - oracle
oracle  29671 29670  0 09:43 pts/1    00:00:00 -bash
oracle  29754     1  0 09:50 ?        00:00:00/u01/app/oracle/product/11.2.0/db_1/bin/tnslsnr LISTENER -inherit
root    29868 29807  0 10:00 pts/3    00:00:00 su - oracle
oracle  29869 29868  0 10:00 pts/3    00:00:00 -bash
oracle  30135 29869  0 10:30 pts/3    00:00:00 rlwrap sqlplus / as sysdba
oracle  30136 30135  0 10:30 pts/2    00:00:00 sqlplus   as sysdba
oracle  30198     1  0 10:33 ?        00:00:00 ora_pmon_denver
oracle  30200     1  0 10:33 ?        00:00:02 ora_vktm_denver
oracle  30204     1  0 10:33 ?        00:00:00 ora_gen0_denver
oracle  30206     1  0 10:33 ?        00:00:00 ora_diag_denver
oracle  30208     1  0 10:33 ?        00:00:00 ora_dbrm_denver
oracle  30210     1  0 10:33 ?        00:00:00 ora_psp0_denver
oracle  30212     1  0 10:33 ?        00:00:01 ora_dia0_denver
oracle  30214     1  0 10:33 ?        00:00:02 ora_mman_denver
oracle  30216     1  0 10:33 ?        00:00:00 ora_dbw0_denver
oracle  30218     1  0 10:33 ?        00:00:00 ora_lgwr_denver
oracle  30220     1  0 10:33 ?        00:00:01 ora_ckpt_denver
oracle  30222     1  0 10:33 ?        00:00:01 ora_smon_denver
oracle  30224     1  0 10:33 ?        00:00:00 ora_reco_denver
oracle  30226     1  0 10:33 ?        00:00:01 ora_mmon_denver
oracle  30229     1  0 10:33 ?        00:00:00 ora_mmnl_denver
oracle  30231     1  0 10:33 ?        00:00:00 ora_d000_denver
oracle  30233     1  0 10:33 ?        00:00:00 ora_s000_denver
oracle  30279 30136  0 10:33 ?        00:00:02 oracledenver (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle  30284     1  0 10:34 ?        00:00:00 ora_arc0_denver
oracle  30286     1  0 10:34 ?        00:00:00 ora_arc1_denver
oracle  30288     1  0 10:34 ?        00:00:00 ora_arc2_denver
oracle  30290     1  010:34 ?        00:00:00 ora_arc3_denver
oracle  30292     1  0 10:34 ?        00:00:00 ora_qmnc_denver
oracle  30311     1  0 10:34 ?        00:00:00 ora_cjq0_denver
oracle  30313     1  0 10:34 ?        00:00:00 ora_q000_denver
oracle  30315     1  010:34 ?        00:00:00 ora_q001_denver
oracle  30352     1  0 10:39 ?        00:00:00 ora_smco_denver
oracle  30354     1  0 10:39 ?        00:00:00 ora_w000_denver
oracle  30381 29671  0 10:43 pts/1    00:00:00 rlwrap rman target /
oracle  30382 30381  0 10:43 pts/0    00:00:04 rman target /
oracle  30387 30382  0 10:43 ?        00:00:03 oracledenver(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle  30390 30382  0 10:43 ?        00:00:00 oracledenver(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle  30391 30382  0 10:43 ?        00:00:00 oracledenver(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
root    30435 30406  0 10:45 pts/4    00:00:00 su - oracle
oracle  30436 30435  0 10:45 pts/4    00:00:00 -bash
root    30661 30625  0 11:05 pts/5    00:00:00 su - oracle
oracle  30662 30661  0 11:05 pts/5    00:00:00 -bash
oracle  30696 30662  0 11:05 pts/5    00:00:00 ps -ef
oracle  30697 30662  0 11:05 pts/5    00:00:00 grep oracle
[oracle@orcl ~]$ sqlplus / as sysdba
 
SQL*Plus: Release 11.2.0.1.0 Production onFri Aug 8 11:06:06 2014
 
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
 
 
Connected to:
Oracle Database 11g Enterprise EditionRelease 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Miningand Real Application Testing options
 
--查看当前的归档模式
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     6
Next log sequence to archive   8
Current log sequence           8
 
--下面的步骤是把归档模式更改为非归档模式,
 
--首先关了数据库
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
 
--将数据库启动到mount的模式下,这种模式下只打开控制文件,不打开数据文件
SQL> startup mount;
ORACLE instance started.
 
Total System Global Area  556584960 bytes
Fixed Size                  1337860 bytes
Variable Size             373294588 bytes
Database Buffers          176160768 bytes
Redo Buffers                5791744 bytes
Database mounted.
 
--把数据库切换为非归档模式
SQL> alter database noarchivelog;
 
Database altered.
 
--把数据库打开,此时打开数据文件
SQL> alter database open;
 
Database altered.
 
--查看归档的模式,此时就从归档模式à非归档模式
SQL> archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     6
Current log sequence           8
 
--下面的步骤是从非归档模式à归档模式,方法和上面的类似
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
 
Total System Global Area  556584960 bytes
Fixed Size                  1337860 bytes
Variable Size             373294588 bytes
Database Buffers          176160768 bytes
Redo Buffers                5791744 bytes
Database mounted.
SQL> alter database archivelog;
 
Database altered.
 
SQL> alter database open;
 
Database altered.
 
--此时就是归档模式
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     6
Next log sequence to archive   8
Current log sequence           8
 
--看一下数据库是否位于archivelog模式中,并且归档过程正在进行
SQL> select log_mode from v$database;
 
LOG_MODE
------------
ARCHIVELOG
 
SQL> select archiver from v$instance;
 
ARCHIVE
-------
STARTED
 
--查看归档日志的位置,由于是第一次切换到归档,所以没有文件
SQL> select name from v$archived_log;
 
NAME
--------------------------------------------------------------------------------
 
 
--日志切换,这里是手动切换日志,会产生一个归档日志
SQL> alter system switch logfile;
 
System altered.
 
--上一步由于产生了一个归档日志,所以在这里能查到,并且能看到具体的位置
SQL> select name from v$archived_log;
 
NAME
--------------------------------------------------------------------------------
 
/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_8_9y8j5
wgj_.arc
 
--下面多产生几个归档日志
SQL> alter system switch logfile;
 
System altered.
 
SQL> /
 
System altered.
 
SQL> /
 
System altered.
 
SQL> /
 
System altered.
 
SQL> /
 
System altered.
 
SQL> /
 
System altered.
 
--这里可以看一下归档日志的位置
SQL> select name from v$archived_log;
 
NAME
--------------------------------------------------------------------------------
 
/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_8_9y8j5
wgj_.arc
 
/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_9_9y8j6
o3g_.arc
 
/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_10_9y8j
6t3q_.arc
 
/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_11_9y8j
 
NAME
--------------------------------------------------------------------------------
6yhd_.arc
 
/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_12_9y8j
706o_.arc
 
/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_13_9y8j
7166_.arc
 
/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_14_9y8j
7335_.arc
 
 
8 rows selected.
 
SQL> !
 
 
 
--切换到那个目录,查看一下归档文件
[oracle@orcl ~]$ cd/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/
[oracle@orcl 2014_08_08]$ ls
o1_mf_1_10_9y8j6t3q_.arc  o1_mf_1_13_9y8j7166_.arc  o1_mf_1_9_9y8j6o3g_.arc
o1_mf_1_11_9y8j6yhd_.arc  o1_mf_1_14_9y8j7335_.arc
o1_mf_1_12_9y8j706o_.arc  o1_mf_1_8_9y8j5wgj_.arc
 
鎬昏 2608
-rw-r----- 1 oracle oinstall    2048 08-08 11:15 o1_mf_1_10_9y8j6t3q_.arc
-rw-r----- 1 oracle oinstall    1024 08-08 11:15 o1_mf_1_11_9y8j6yhd_.arc
-rw-r----- 1 oracle oinstall    1024 08-08 11:15 o1_mf_1_12_9y8j706o_.arc
-rw-r----- 1 oracle oinstall    1024 08-08 11:15 o1_mf_1_13_9y8j7166_.arc
-rw-r----- 1 oracle oinstall    1024 08-08 11:15 o1_mf_1_14_9y8j7335_.arc
-rw-r----- 1 oracle oinstall 2638848 08-0811:15 o1_mf_1_8_9y8j5wgj_.arc
-rw-r----- 1 oracle oinstall    1024 08-08 11:15 o1_mf_1_9_9y8j6o3g_.arc
 
--通过rman对归档日志进行管理,下面是测试crosscheck archivelog all和delete expired --archivelog all这两个命令
 
--连接rman
[oracle@orcl 2014_08_08]$ rman target /
 
Recovery Manager: Release 11.2.0.1.0 -Production on Fri Aug 8 11:18:08 2014
 
Copyright (c) 1982, 2009, Oracle and/or itsaffiliates.  All rights reserved.
 
connected to target database: DENVER(DBID=4143344931)
 
--检查无效的归档日志,succeeded表示成功,文件都有效
RMAN> crosscheck archivelog all;
 
using target database control file insteadof recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=34 device type=DISK
validation succeeded for archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_8_9y8j5wgj_.arcRECID=2 STAMP=855054908
validation succeeded for archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_9_9y8j6o3g_.arcRECID=3 STAMP=855054933
validation succeeded for archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_10_9y8j6t3q_.arcRECID=4 STAMP=855054938
validation succeeded for archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_11_9y8j6yhd_.arcRECID=5 STAMP=855054942
validation succeeded for archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_12_9y8j706o_.arcRECID=6 STAMP=855054944
validation succeeded for archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_13_9y8j7166_.arcRECID=7 STAMP=855054945
validation succeeded for archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_14_9y8j7335_.arcRECID=8 STAMP=855054947
Crosschecked 7 objects
 
--这个命令是删除无效的归档日志,由于上面检查的没有无效的,所以这里什么也没有删除
RMAN> delete expired archivelog all;
 
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=34 device type=DISK
specification does not match any archivedlog in the repository
 
RMAN> exit
 
 
Recovery Manager complete.
[oracle@orcl 2014_08_08]$ ls
o1_mf_1_10_9y8j6t3q_.arc  o1_mf_1_13_9y8j7166_.arc  o1_mf_1_9_9y8j6o3g_.arc
o1_mf_1_11_9y8j6yhd_.arc  o1_mf_1_14_9y8j7335_.arc
o1_mf_1_12_9y8j706o_.arc  o1_mf_1_8_9y8j5wgj_.arc
[oracle@orcl 2014_08_08]$ ll
鎬昏 2608
-rw-r----- 1 oracle oinstall    2048 08-08 11:15 o1_mf_1_10_9y8j6t3q_.arc
-rw-r----- 1 oracle oinstall    1024 08-08 11:15 o1_mf_1_11_9y8j6yhd_.arc
-rw-r----- 1 oracle oinstall    1024 08-08 11:15 o1_mf_1_12_9y8j706o_.arc
-rw-r----- 1 oracle oinstall    1024 08-08 11:15 o1_mf_1_13_9y8j7166_.arc
-rw-r----- 1 oracle oinstall    1024 08-08 11:15 o1_mf_1_14_9y8j7335_.arc
-rw-r----- 1 oracle oinstall 2638848 08-0811:15 o1_mf_1_8_9y8j5wgj_.arc
-rw-r----- 1 oracle oinstall    1024 08-08 11:15 o1_mf_1_9_9y8j6o3g_.arc
 
--把归档日志的物理文件都删除
[oracle@orcl 2014_08_08]$ rm *.arc
鎬昏 0
[oracle@orcl 2014_08_08]$ exit
exit
 
--在删除归档文件的物理文件之后,在oracle里面可以查到
SQL> select name from v$archived_log;
 
NAME
--------------------------------------------------------------------------------
 
/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_8_9y8j5
wgj_.arc
 
/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_9_9y8j6
o3g_.arc
 
/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_10_9y8j
6t3q_.arc
 
/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_11_9y8j
 
NAME
--------------------------------------------------------------------------------
6yhd_.arc
 
/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_12_9y8j
706o_.arc
 
/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_13_9y8j
7166_.arc
 
/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_14_9y8j
7335_.arc
 
 
8 rows selected.
 
SQL> !
[oracle@orcl ~]$ cd/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/
 
--此时归档日志的物理文件已经删除完成,查看不到了
[oracle@orcl 2014_08_08]$ ll
鎬昏 0
 
--连接到rman
[oracle@orcl 2014_08_08]$ rman target /
 
Recovery Manager: Release 11.2.0.1.0 -Production on Fri Aug 8 11:20:35 2014
 
Copyright (c) 1982, 2009, Oracle and/or itsaffiliates.  All rights reserved.
 
connected to target database: DENVER(DBID=4143344931)
 
--现在检查无效的归档日志文件,failed表示就是无效的
RMAN> crosscheck archivelog all;
 
using target database control file insteadof recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=42 device type=DISK
validation failed for archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_8_9y8j5wgj_.arcRECID=2 STAMP=855054908
validation failed for archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_9_9y8j6o3g_.arcRECID=3 STAMP=855054933
validation failed for archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_10_9y8j6t3q_.arcRECID=4 STAMP=855054938
validation failed for archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_11_9y8j6yhd_.arcRECID=5 STAMP=855054942
validation failed for archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_12_9y8j706o_.arcRECID=6 STAMP=855054944
validation failed for archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_13_9y8j7166_.arcRECID=7 STAMP=855054945
validation failed for archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_14_9y8j7335_.arcRECID=8 STAMP=855054947
Crosschecked 7 objects
 
--把上一步检查到了无效的归档日志都删除,要删除输入  yes
--此处删除的其实是数据库控制文件里面对归档日志的记录,这里删除之后,在oracle里面就查不到归--档日志的信息了
RMAN> delete expired archivelog all;
 
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=42 device type=DISK
List of Archived Log Copies for databasewith db_unique_name DENVER
=====================================================================
 
Key    Thrd Seq     S Low Time 
------- ---- ------- - ---------
2      1    8       X 08-AUG-14
       Name: /u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_8_9y8j5wgj_.arc
 
3      1    9       X 08-AUG-14
       Name:/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_9_9y8j6o3g_.arc
 
4      1    10      X 08-AUG-14
       Name:/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_10_9y8j6t3q_.arc
 
5      1    11      X 08-AUG-14
       Name:/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_11_9y8j6yhd_.arc
 
6      1    12      X 08-AUG-14
       Name:/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_12_9y8j706o_.arc
 
7      1    13      X 08-AUG-14
       Name: /u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_13_9y8j7166_.arc
 
8      1    14      X 08-AUG-14
       Name:/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_14_9y8j7335_.arc
 
 
Do you really want to delete the aboveobjects (enter YES or NO)? yes
deleted archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_8_9y8j5wgj_.arcRECID=2 STAMP=855054908
deleted archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_9_9y8j6o3g_.arcRECID=3 STAMP=855054933
deleted archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_10_9y8j6t3q_.arcRECID=4 STAMP=855054938
deleted archived log
archived log file name=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_11_9y8j6yhd_.arcRECID=5 STAMP=855054942
deleted archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_12_9y8j706o_.arcRECID=6 STAMP=855054944
deleted archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_13_9y8j7166_.arcRECID=7 STAMP=855054945
deleted archived log
archived log filename=/u01/app/oracle/flash_recovery_area/DENVER/archivelog/2014_08_08/o1_mf_1_14_9y8j7335_.arcRECID=8 STAMP=855054947
Deleted 7 EXPIRED objects
 
 
RMAN> exit
 
 
Recovery Manager complete.
[oracle@orcl 2014_08_08]$ ll
鎬昏 0
[oracle@orcl 2014_08_08]$ exit
exit
 
--此时再查看的话oracle里面就看不到归档日志的信息了
SQL> select name from v$archived_log;
 
NAME
--------------------------------------------------------------------------------
 
 
 
 
 
 
 
 
 
8 rows selected.
 
SQL>