问题描述:

早上做数据库巡检,发现FRA(flash recovery area)空间使用率达到66%,是平时的两倍。由于库不大,备份策略是本地磁盘备份,
每天一全备,REDUNDANCY 1 ,备份完成后delete obsolete ,EXPIRED 的备份集。也就是说只保留了一个最新的备份,且大小为33%左右。

问题排查:
检查备份日志,发现存在如下错误:
RMAN>  delete noprompt obsolete; 
......
using channel ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of delete command at 02/10/2014 14:00:50
RMAN-06091: no channel allocated for maintenance (of an appropriate type)

rman 下list backup of database 发现有几个备份到磁带的备份集。
List of Backup Sets
===================
BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ ---------------
4943 838M SBT_TAPE 00:00:35 02/10/2014 
BP Key: 4943 Status: UNAVAILABLE Tag: TAG20100411T004252
Piece Name: arch_20100411_4970_1
List of Archived Logs in backup set 4943
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- --------- ---------- ---------
1 16014 4006475789091 10-APR-10 4006475846928 10-APR-10
1 16015 4006475846928 10-APR-10 4006475885650 10-APR-10
1 16016 4006475885650 10-APR-10 4006475943776 10-APR-10
1 16017 4006475943776 10-APR-10 4006475979118 10-APR-10
1 16018 4006475979118 10-APR-10 4006476023785 10-APR-10
1 16019 4006476023785 10-APR-10 4006476071180 10-APR-10
1 16020 4006476071180 10-APR-10 4006476158466 10-APR-10
1 16021 4006476158466 10-APR-10 4006476250848 10-APR-10
1 16022 4006476250848 10-APR-10 4006525513941 11-APR-10
BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ ---------------
4948 517M SBT_TAPE 00:00:29 02/10/2014 
BP Key: 4948 Status: AVAILABLE Tag: TAG20100412T002657
Piece Name: arch_20100412_4976_1
List of Archived Logs in backup set 4948
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- --------- ---------- ---------
1 16030 4006527200207 11-APR-10 4006527247642 11-APR-10
1 16031 4006527247642 11-APR-10 4006527316362 11-APR-10
1 16032 4006527316362 11-APR-10 4006527374966 11-APR-10
1 16033 4006527374966 11-APR-10 4006527472280 11-APR-10
1 16034 4006527472280 11-APR-10 4006528044006 11-APR-10
1 16035 4006528044006 11-APR-10 4006576257046 02/10/2014
BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ ---------------
且前一天备份的那个backupset也没有被删掉。

所以,至此问题清楚了,FRA使用率高是因为多了一个前一天的backupset 。

问题是,为什么命令块里面明明有
 report obsolete;
CROSSCHECK BACKUP;
CROSSCHECK COPY;
DELETE noprompt EXPIRED BACKUP;
DELETE noprompt EXPIRED COPY;
delete noprompt obsolete;
这些命令,为什么没有把那个已经过期的备份集删掉呢?
于是,rman单独执行     
RMAN>  delete noprompt obsolete;                                         
......                                                                   
using channel ORA_DISK_1                                                 
RMAN-00571: ===========================================================  
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============  
RMAN-00571: ===========================================================  
RMAN-03002: failure of delete command at 02/10/2014 14:00:50             
RMAN-06091: no channel allocated for maintenance (of an appropriate type)
同样不能删除。

这时候才反映过来,备份集删不掉应该是与控制文件中Device Type  为 SBT_TAPE 的东西有关。
这才想起年前放假前测试过一款备份软件,备份集已经没了,但是备份信息依然存在于控制文件中,正因为rman试图去删除
这些backup set 的时候发现 没有分配合适的通道,无法删除,所以导致FRA上expired 的backupset 也无法被成功删除。

所以现在问题就是怎样去把控制文件中的那些到磁带的备份信息删掉。

rman target /
                                                                            
RMAN> show channel ;                                                        
                                                                            
using target database control file instead of recovery catalog              
RMAN configuration parameters for database with db_unique_name FINAPRIM are:
RMAN configuration has no stored or default parameters

没有已分配的渠道。

然后问题的关键是,现在已经没有磁带备份设备了,怎样去分配一个到磁带的渠道,幸运的是看到了一个兄弟类似的案例,
有这么一段:                                                                                                                                                             
Suppose your current backup strategy uses only disk, but you have several old tape       
backups you want to get rid of. You can allocate a maintenance channel for performing the
deletion of the tape backups by using the dummy sbt API (because the media manager isn’t
available any longer). You can then use the delete obsolete command to remove the tape   
backups. Here’s an example showing how to do those things:                              
                                                                                         
RMAN> allocate channel for maintenance device type sbt                                   
parms 'SBT_LIBRARY=oracle.disksbt,                                                       
ENV=(BACKUP_DIR=/tmp)';                                                                  
RMAN> delete obsolete;                                                                   
                                                                                         
Although the media manager isn’t available any longer, RMAN simulates a callout to the  
media management layer (MML) and successfully initiates the maintenance command to       
delete the old tape backups you want toget rid of.

哈哈,看起来太合适我了。  
RMAN> allocate channel for maintenance device type sbt parms 'SBT_LIBRARY=oracle.disksbt, ENV=(BACKUP_DIR=/tmp)';
RMAN> delete noprompt obsolete;  
RMAN> DELETE noprompt EXPIRED  ;
RMAN> release channel ;
                           
然后 然后就大功告成了,很顺利的就删掉了。

再然后,测试了一下备份,没有任何问题,该渠道并不会影响当前的备份策略。

本文转自:http://blog.csdn.net/hj402555749/article/details/19041221

如何删除控制文件中过去rman备份到磁带的备份集的更多相关文章

  1. ORACLE11g 没有控制文件如何通过rman备份恢复数据的详细实战过程

    1.副总裁需要裸恢复的严峻现实 集团总部的信息部负责人给我打电话说为了找一年前的记录,所以需要对一年前2015年5月1日的数据进行恢复.而2016年初因为进行迁移,所以有些文件可能丢失,手上只有rma ...

  2. oracle 中控制文件中到底记录了哪些信息

     oracle 控制文件中的信息  oracle 11g                                             oracle 10g   DATABASE       ...

  3. java 用PDFBox 删除 PDF文件中的某一页

    依赖: <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox-app ...

  4. 删除XML文件中的空格

    应要求需要删除xml文件中的空格,制表符等字符.要求双引号和xml的text属性中包含的空格不删除. bool delSpace(QFile &file, QString path) //删除 ...

  5. 怎样批量删除PDF文件中的注释

    日常我们在阅读一些PDF文章时候,我们会发现有些PDF文章带有非常多的注释,显得非常不美观,影响了阅读体验.那么PDF文章里的批注应该怎么进行删除呢?怎样批量删除PDF文件中的注释?   操作教程: ...

  6. C#程序中:如何删除xml文件中的节点、元素。

    C#中动态的清理xml文件中的垃圾信息是程序员必会的哦.这就像数据库一样,不会清理数据怎么可以呢?其实xml文件就可以用作一个小的数据库,存储一些简单的信息.所以,用C#程序实现xml文件的增.删.改 ...

  7. Oracle删除控制文件恢复

    控制文件被删除后,系统崩溃,下面介绍下如何恢复控制文件 SQL> conn / as sysdbaConnected to an idle instance.SQL> startup no ...

  8. 从a文件判断是否删除b文件中的行(sed示例)

    bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html test.xml文件很大,内容结构如下: <?xml v ...

  9. 如何删除ini文件中的内容

    1.删除子项值:::WritePrivateProfileString(分区名称, 子项名称, "", ini文件路径); 2.删除子项(名称和值):::WritePrivateP ...

随机推荐

  1. hdu 1051 (greedy algorithm, how a little modification turn 15ms to 0ms) 分类: hdoj 2015-06-18 12:54 29人阅读 评论(0) 收藏

    the 2 version are essentially the same, except version 2 search from the larger end, which reduce th ...

  2. JS实现表格的增删改

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/T ...

  3. github删除带有文件的文件夹

    1. git pull you git url2. git checkout 3. rm -rf dirName4. git add --all5. git commit -m"remove ...

  4. MVC 微信支付

    微信支付方式有好几种,俺研究了跟自己需要的两种,即:JS API网页支付和Native原生支付,这两个名词实在是有目的难懂.JS API网页支付:我的理解是在微信浏览器里面可以调用微信支付控件的支付方 ...

  5. jquery甘特图免费下载

    Silverlight Gantt甘特图是一款非常丰富,可定制,轻量级和高性能的控件. 项目甘特图: 可视化层次的任务列表. 可移动和拖拽调整条形图 可视化时间编辑器 编辑任务依赖关系 调整任务进度条 ...

  6. Cfree

    #include<stdio.h>int main(){ printf("Hello World!!!/n"); return 0;} #include<stdi ...

  7. mouseover 移入某个元素后停留一段时间再执行函授,我用于解决轮播图下面计数用的元素快速移入后会出BUG的问题。

    var stop; $(this).bind("mouseover",function(){ stop= setTimeout(function(){ },200); }).bin ...

  8. sphinx 增量索引 实现近实时更新

    一.sphinx增量索引的设置   数据库中的已有数据很大,又不断有新数据加入到数据库中,也希望能够检索到.全部重新建立索引很消耗资源,因为我们需要更新的数据相比较而言很少.例如.原来的数据有几百万条 ...

  9. Ubuntn系统忘记密码的解决方法(虚拟机下同样处理)

    不知道你有没有遇到过忘记了ubuntn系统密码的情况,反正我都了,一段时间没用就很容易忘记密码的,此时无奈只能修改密码了!下面分享一个简单实用的方法: 版本号为: (我用的是V-BOX虚拟机安装的ub ...

  10. sublime 的使用

    常见问题: ctrl+`快捷见弹不出console怎么办! 解决方法: 估计适合电脑其他软件的快捷键冲突了,在sublime里面重新设置下快捷键 点击菜单中Preferences下面的Key Bind ...