rman 如何删除重复的archivelog 备份?

[复制链接]
查看11 | 回复9 | 2013-11-27 16:16:31 | 显示全部楼层 |阅读模式
我知道database 可以通过configure retentino policy to redundancy n; delete obsolete;来删除重复的备份
可是如果执行backup archivelog all;两次,delete obsolete时第一次的备份并不会被删除,请问该如何删除?
另外为什么每次backup full database 时都会自动发生日志切换2次?
恢复管理器: 版本9.2.0.1.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation.All rights reserved.
连接到目标数据库: TESTDB (DBID=2390666429)
回复

使用道具 举报

千问 | 2013-11-27 16:16:31 | 显示全部楼层
可以在执行delete之前执行一次 crosscheck archivelog all
回复

使用道具 举报

千问 | 2013-11-27 16:16:31 | 显示全部楼层
最初由 wsny 发布
[B]可以在执行delete之前执行一次 crosscheck archivelog all [/B]

这个命令是用来验证原始archivelog 的,跟archivelog 备份文件是否obsolete 没关系吧?
回复

使用道具 举报

千问 | 2013-11-27 16:16:31 | 显示全部楼层
看不明白,请举例说明需求。
回复

使用道具 举报

千问 | 2013-11-27 16:16:31 | 显示全部楼层
RMAN> list backup of archivelog all;
正在使用目标数据库控制文件替代恢复目录
备份集列表
===================
BS 关键字大小 设备类型占用时间 完成时间
------- ---------- ----------- ------------ --------
382M DISK00:00:01
BP 关键字: 38 状态: EXPIRED 标记:ARCHIVELOG
段名

\\ORACLE\\BACKUP\\ARC39_TESTDB_39_1
备份集 38 中的已存档日志列表
Thrd Seq 低 SCN短时间 下一个 SCN 下一次
---- ------- ---------- ------ ---------- ---------
123366527
376524
124376524
376890
BS 关键字大小 设备类型占用时间 完成时间
------- ---------- ----------- ------------ --------
402M DISK00:00:01
BP 关键字: 40 状态: EXPIRED 标记:ARCHIVELOG
段名

\\ORACLE\\BACKUP\\ARC%E_TESTDB_41_1
备份集 40 中的已存档日志列表
Thrd Seq 低 SCN短时间 下一个 SCN 下一次
---- ------- ---------- ------ ---------- ---------
123366527
376524
124376524
376890
125376890
377384
BS 关键字大小 设备类型占用时间 完成时间
------- ---------- ----------- ------------ --------
423M DISK00:00:01
BP 关键字: 42 状态: EXPIRED 标记:ARCHIVELOG
段名

\\ORACLE\\BACKUP\\ARC_%E_TESTDB_43_1
备份集 42 中的已存档日志列表
Thrd Seq 低 SCN短时间 下一个 SCN 下一次
---- ------- ---------- ------ ---------- ---------
123366527
376524
124376524
376890
125376890
377384
126377384
377510
BS 关键字大小 设备类型占用时间 完成时间
------- ---------- ----------- ------------ --------
442M DISK00:00:01
BP 关键字: 44 状态: AVAILABLE 标记:ARCHIVELOG
段名

\\ORACLE\\BACKUP\\ARC_%E_TESTDB_45_1
备份集 44 中的已存档日志列表
Thrd Seq 低 SCN短时间 下一个 SCN 下一次
---- ------- ---------- ------ ---------- ---------
123366527
376524
BS 关键字大小 设备类型占用时间 完成时间
------- ---------- ----------- ------------ --------
45239K DISK00:00:01
BP 关键字: 45 状态: AVAILABLE 标记:ARCHIVELOG
段名

\\ORACLE\\BACKUP\\ARC_%E_TESTDB_46_1
备份集 45 中的已存档日志列表
Thrd Seq 低 SCN短时间 下一个 SCN 下一次
---- ------- ---------- ------ ---------- ---------
124376524
376890
125376890
377384
BS 关键字大小 设备类型占用时间 完成时间
------- ---------- ----------- ------------ --------
46104K DISK00:00:01
BP 关键字: 46 状态: AVAILABLE 标记:ARCHIVELOG
段名

\\ORACLE\\BACKUP\\ARC_%E_TESTDB_47_1
备份集 46 中的已存档日志列表
Thrd Seq 低 SCN短时间 下一个 SCN 下一次
---- ------- ---------- ------ ---------- ---------
126377384
377510
127377510
377760
BS 关键字大小 设备类型占用时间 完成时间
------- ---------- ----------- ------------ --------
481M DISK00:00:01
BP 关键字: 48 状态: AVAILABLE 标记:TAG20061128T112706
段名

\\ORACLE\\ORA92\\DATABASE\\1HI3H9KA_1_1
备份集 48 中的已存档日志列表
Thrd Seq 低 SCN短时间 下一个 SCN 下一次
---- ------- ---------- ------ ---------- ---------
126377384
377510
127377510
377760
128377760
384626
BS 关键字大小 设备类型占用时间 完成时间
------- ---------- ----------- ------------ --------
502M DISK00:00:01
BP 关键字: 50 状态: AVAILABLE 标记:TAG20061128T112808
段名

\\ORACLE\\ORA92\\DATABASE\\1JI3H9M8_1_1
备份集 50 中的已存档日志列表
Thrd Seq 低 SCN短时间 下一个 SCN 下一次
---- ------- ---------- ------ ---------- ---------
126377384
377510
127377510
377760
128377760
384626
129384626
384872
RMAN> report obsolete;
RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 1
未找到已废弃的备份=========================从上面可以看到有些日志重复备份了,我想把重复的删掉,仅保留一份
RMAN> crosscheck backup of archivelog all;
使用通道 ORA_DISK_1
交叉校验备份段: 找到为 \'EXPIRED\'
备份段 handle=D:\\ORACLE\\BACKUP\\ARC39_TESTDB_39_1 recid=38 stamp=607690347
交叉校验备份段: 找到为 \'EXPIRED\'
备份段 handle=D:\\ORACLE\\BACKUP\\ARC%E_TESTDB_41_1 recid=40 stamp=607690481
交叉校验备份段: 找到为 \'EXPIRED\'
备份段 handle=D:\\ORACLE\\BACKUP\\ARC_%E_TESTDB_43_1 recid=42 stamp=607690517
交叉校验备份段: 找到为 \'AVAILABLE\'
备份段 handle=D:\\ORACLE\\BACKUP\\ARC_%E_TESTDB_45_1 recid=44 stamp=607690588
交叉校验备份段: 找到为 \'AVAILABLE\'
备份段 handle=D:\\ORACLE\\BACKUP\\ARC_%E_TESTDB_46_1 recid=45 stamp=607690590
交叉校验备份段: 找到为 \'AVAILABLE\'
备份段 handle=D:\\ORACLE\\BACKUP\\ARC_%E_TESTDB_47_1 recid=46 stamp=607690592
交叉校验备份段: 找到为 \'AVAILABLE\'
备份段 handle=D:\\ORACLE\\ORA92\\DATABASE\\1HI3H9KA_1_1 recid=48 stamp=607692427
交叉校验备份段: 找到为 \'AVAILABLE\'
备份段 handle=D:\\ORACLE\\ORA92\\DATABASE\\1JI3H9M8_1_1 recid=50 stamp=607692489
已交叉检验的 8 对象
RMAN> delete expired archivelog all;
释放的通道: ORA_DISK_1
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=16 devtype=DISK
说明与恢复目录中的任何存档日志均不匹配======================删除expired archivelog 没有成功,不知道为什么?
回复

使用道具 举报

千问 | 2013-11-27 16:16:31 | 显示全部楼层
把帖子捞起来
回复

使用道具 举报

千问 | 2013-11-27 16:16:31 | 显示全部楼层
最初由 fjmingyang 发布
[B]把帖子捞起来 [/B]

还没找到方法,想想,可能ORACLE不支持此要求。
回复

使用道具 举报

千问 | 2013-11-27 16:16:31 | 显示全部楼层
backup archivelog all delete input
不是可以吗?
回复

使用道具 举报

千问 | 2013-11-27 16:16:31 | 显示全部楼层
最初由 fomilar 发布
[B]backup archivelog all delete input
不是可以吗? [/B]

人家要保留一份备份的日志。
回复

使用道具 举报

千问 | 2013-11-27 16:16:31 | 显示全部楼层
我是这样猜想的,假设备份了
logseq=23 (1份)
23+24 (1份)
24 (1份)
24+25 (1份)
25 (份)
那若要保留一份日志, RMAN则有多种选择:
23+24 25
23 24+25
23 24 25
23+24 24+25
此时,RMAN该选择哪一种好呢?
通常软件只能对唯一的答案做出判断/答复,
象这样多种答案的情况,显然,软件是不好做出判断的,
所以,我猜测 RMAN 不会提供这种功能.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行