博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

如何手动删除归档日志

Posted on 2012-05-10 10:22  徐正柱-  阅读(1261)  评论(0编辑  收藏  举报

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\RequieM>sqlplus " / as sysdba"

SQL*Plus: Release 9.2.0.7.0 - Production on 星期一 7月 16 23:54:37 2007

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

已连接到空闲例程。

SQL/IDLE> startup;
ORACLE 例程已经启动。

Total System Global Area  101785284 bytes
Fixed Size                   454340 bytes
Variable Size              75497472 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL/IDLE> @glogin
SQL> show parameter log_archive_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest                     string      
log_archive_dest_1                   string      LOCATION=F:\oracle\oradata\MYDB\archive
log_archive_dest_10                  string      
log_archive_dest_2                   string      
log_archive_dest_3                   string      
log_archive_dest_4                   string      
log_archive_dest_5                   string      
log_archive_dest_6                   string      
log_archive_dest_7                   string      
log_archive_dest_8                   string      
log_archive_dest_9                   string      
log_archive_dest_state_1             string      enable
log_archive_dest_state_10            string      enable
log_archive_dest_state_2             string      enable
log_archive_dest_state_3             string      enable
log_archive_dest_state_4             string      enable
log_archive_dest_state_5             string      enable
log_archive_dest_state_6             string      enable
log_archive_dest_state_7             string      enable
log_archive_dest_state_8             string      enable
log_archive_dest_state_9             string      enable

SQL> host dir F:\oracle\oradata\MYDB\archive

Volume in drive F is APPLICATION
Volume Serial Number is 684B-6ADC
Directory of F:\ORACLE\ORADATA\MYDB\ARCHIVE

.            <DIR>     07-06-24   16:55
..           <DIR>     07-06-24   16:55
1_10     DBF     50688 07-06-28   11:21
1_11     DBF    180224 07-06-28   23:04
1_12     DBF    131584 07-06-29   18:30
1_13     DBF    122368 07-06-30   23:28
1_14     DBF    167936 07-07-01   11:04
1_3      DBF  91852288 07-06-25    5:52
1_4      DBF     60416 07-06-25   21:01
1_5      DBF     89600 07-06-26   17:51
1_6      DBF     99840 07-06-27    6:49
1_7      DBF     50176 07-06-27   12:27
1_8      DBF     53760 07-06-27   14:59
1_9      DBF    129024 07-06-28    6:53
       14 file(s)   92987904 bytes
                  1023932928 bytes free
                  
SQL> host del F:\oracle\oradata\MYDB\archive\1_5.DBF
SQL> host dir F:\oracle\oradata\MYDB\archive

Volume in drive F is APPLICATION
Volume Serial Number is 684B-6ADC
Directory of F:\ORACLE\ORADATA\MYDB\ARCHIVE

.            <DIR>     07-06-24   16:55
..           <DIR>     07-06-24   16:55
1_10     DBF     50688 07-06-28   11:21
1_11     DBF    180224 07-06-28   23:04
1_12     DBF    131584 07-06-29   18:30
1_13     DBF    122368 07-06-30   23:28
1_14     DBF    167936 07-07-01   11:04
1_3      DBF  91852288 07-06-25    5:52
1_4      DBF     60416 07-06-25   21:01
1_6      DBF     99840 07-06-27    6:49
1_7      DBF     50176 07-06-27   12:27
1_8      DBF     53760 07-06-27   14:59
1_9      DBF    129024 07-06-28    6:53
       13 file(s)   92898304 bytes
                  1023932928 bytes free

SQL> exit

C:\Documents and Settings\RequieM>rman target / nocatalog

恢复管理器: 版本9.2.0.7.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

连接到目标数据库: MYDB (DBID=2541111196)
正在使用目标数据库控制文件替代恢复目录

RMAN> backup archivelog all delete input;

启动 backup 于 17-7月 -07
当前日志已存档
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=15 devtype=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 07/17/2007 00:02:45
RMAN-06059: expected archived log not found, lost of archived log compromises re
coverability
ORA-19625: 识别文件F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_5.DBF时出错
ORA-27041: 无法打开文件
OSD-04002: ???????
O/S-Error: (OS 2) ????????????????

RMAN> exit


恢复管理器完成。

C:\Documents and Settings\RequieM>sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.7.0 - Production on 星期二 7月 17 00:11:35 2007

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


连接到:
Oracle9i Enterprise Edition Release 9.2.0.7.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.7.0 - Production

SQL> select name,sequence#,archived,deleted,status from v$archived_log;

NAME                                                                              SEQUENCE# ARCHIVED DELETED STATUS
-------------------------------------------------------------------------------- ---------- -------- ------- ------
F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_3.DBF                                                    3 YES      NO      A
F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_4.DBF                                                    4 YES      NO      A
F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_5.DBF                                                    5 YES      NO      A
F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_6.DBF                                                    6 YES      NO      A
F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_7.DBF                                                    7 YES      NO      A
F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_8.DBF                                                    8 YES      NO      A
F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_9.DBF                                                    9 YES      NO      A
F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_10.DBF                                                  10 YES      NO      A
F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_11.DBF                                                  11 YES      NO      A
F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_12.DBF                                                  12 YES      NO      A
F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_13.DBF                                                  13 YES      NO      A
F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_14.DBF                                                  14 YES      NO      A
F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_15.DBF                                                  15 YES      NO      A

13 rows selected

SQL> exit

从Oracle9i Enterprise Edition Release 9.2.0.7.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.7.0 - Production中断开

C:\Documents and Settings\RequieM>rman target / nocatalog

恢复管理器: 版本9.2.0.7.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

连接到目标数据库: MYDB (DBID=2541111196)
正在使用目标数据库控制文件替代恢复目录

RMAN> crosscheck archivelog all;

分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=18 devtype=DISK
对归档日志的验证失败
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_3.DBF 记录 ID=1 时间戳 =6261619
41
对归档日志的验证失败
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_4.DBF 记录 ID=2 时间戳 =6262164
73
对归档日志的验证成功
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_5.DBF 记录 ID=3 时间戳 =6262915
00
对归档日志的验证失败
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_6.DBF 记录 ID=4 时间戳 =6263381
89
对归档日志的验证失败
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_7.DBF 记录 ID=5 时间戳 =6263584
60
对归档日志的验证失败
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_8.DBF 记录 ID=6 时间戳 =6263675
48
对归档日志的验证失败
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_9.DBF 记录 ID=7 时间戳 =6264248
15
对归档日志的验证失败
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_10.DBF 记录 ID=8 时间戳 =626440
874
对归档日志的验证失败
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_11.DBF 记录 ID=9 时间戳 =626483
071
对归档日志的验证失败
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_12.DBF 记录 ID=10 时间戳 =62655
2999
对归档日志的验证失败
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_13.DBF 记录 ID=11 时间戳 =62665
7288
对归档日志的验证失败
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_14.DBF 记录 ID=12 时间戳 =62678
5441
对归档日志的验证失败
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_15.DBF 记录 ID=13 时间戳 =62812
8164
已交叉检验的 13 对象


RMAN> list copy of archivelog all;


已存档的日志副本列表
关键字     Thrd Seq     S 短时间     名称
------- ---- ------- - ---------- ----
1       1    3       A 24-6月 -07 F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_3.DBF
2       1    4       A 25-6月 -07 F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_4.DBF
3       1    5       X 25-6月 -07 F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_5.DBF
4       1    6       A 26-6月 -07 F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_6.DBF
5       1    7       A 27-6月 -07 F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_7.DBF
6       1    8       A 27-6月 -07 F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_8.DBF
7       1    9       A 27-6月 -07 F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_9.DBF
8       1    10      A 28-6月 -07 F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_10.DBF
9       1    11      A 28-6月 -07 F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_11.DBF
10      1    12      A 28-6月 -07 F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_12.DBF
11      1    13      A 29-6月 -07 F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_13.DBF
12      1    14      A 30-6月 -07 F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_14.DBF
13      1    15      A 01-7月 -07 F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_15.DBF


RMAN> backup archivelog all delete input;

启动 backup 于 17-7月 -07
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =4 记录 ID=2 时间戳=626216473
输入存档日志线程 =1 序列 =6 记录 ID=4 时间戳=626338189
输入存档日志线程 =1 序列 =7 记录 ID=5 时间戳=626358460
输入存档日志线程 =1 序列 =8 记录 ID=6 时间戳=626367548
输入存档日志线程 =1 序列 =9 记录 ID=7 时间戳=626424815
输入存档日志线程 =1 序列 =10 记录 ID=8 时间戳=626440874
输入存档日志线程 =1 序列 =11 记录 ID=9 时间戳=626483071
输入存档日志线程 =1 序列 =12 记录 ID=10 时间戳=626552999
输入存档日志线程 =1 序列 =13 记录 ID=11 时间戳=626657288
输入存档日志线程 =1 序列 =14 记录 ID=12 时间戳=626785441
输入存档日志线程 =1 序列 =15 记录 ID=13 时间戳=628128164
输入存档日志线程 =1 序列 =16 记录 ID=14 时间戳=628129521
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -07
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -07
段 handle=F:\ORACLE\ORA92\DATABASE\01IN0VNI_1_1 comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
通道 ORA_DISK_1: 正在删除存档日志
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_4.DBF 记录 ID=2 时间戳 =6262164
73
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_6.DBF 记录 ID=4 时间戳 =6263381
89
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_7.DBF 记录 ID=5 时间戳 =6263584
60
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_8.DBF 记录 ID=6 时间戳 =6263675
48
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_9.DBF 记录 ID=7 时间戳 =6264248
15
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_10.DBF 记录 ID=8 时间戳 =626440
874
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_11.DBF 记录 ID=9 时间戳 =626483
071
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_12.DBF 记录 ID=10 时间戳 =62655
2999
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_13.DBF 记录 ID=11 时间戳 =62665
7288
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_14.DBF 记录 ID=12 时间戳 =62678
5441
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_15.DBF 记录 ID=13 时间戳 =62812
8164
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_16.DBF 记录 ID=14 时间戳 =62812
9521
完成 backup 于 17-7月 -07

RMAN> delete copy of archivelog sequence 5;

释放的通道: ORA_DISK_1
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=18 devtype=DISK

已存档的日志副本列表
关键字     Thrd Seq     S 短时间     名称
------- ---- ------- - ---------- ----
3       1    5       X 25-6月 -07 F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_5.DBF

是否确定要删除以上对象 (输入 YES 或 NO)? y
已删除的存档日志
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_5.DBF 记录 ID=3 时间戳 =6262915
00
1 对象已删除

 

补充:rman里面的list copy of archivelog all;j就是查询select name,sequence#,archived,deleted,status from v$archived_log;
如果以后因为空间不够等原因不要手动删除archivelog,可以直接用rman的delete copy of archivelog from sequence XXXX until squence XXX删除archivelog及时释放空间,你可以在crontab里面写一角本检测空间,用v$archived_log自动生成上面的命令,删除archivelog及时释放空间。然后及时作全备

You made it too complicated. Simply add the following to the script, then the archive log files will be removed. no need to find the sequence #s at all:

crosscheck archivelog all;
delete noprompt expired backupset;
delete noprompt obsolete;