Oracle 如何删除控制文件中rman备份到磁带的备份集信息(RMAN-06091)

如何删除控制文件中rman备份到磁带的备份集信息

SQL> select name,block_size*file_size_blks/1024/1024 bytes from v$controlfile;
NAME                                BYTES
------------------------------ ----------
/oracle/app/data/control01.ctl   66.46875
/oracle/app/data/control02.ctl   66.46875

      最初由于控制文件太大了,想要清理一下,控制文件中记录的备份集信息有9000多个,由于该控制文件是拷贝过来的,所以绝大部分的备份是不存在的,想要删除无效备份记录.
删除流程如下:

RMAN> crosscheck backup;
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1634 device type=DISK
specification does not match any backup in the repository

RMAN> delete expired backup;
using channel ORA_DISK_1
specification does not match any backup in the repository

----很疑惑,为什么没有匹配的备份
继续尝试删除过时备份obsolete

RMAN>delete obsolete
  Backup Piece       9649   17-SEP-20          arch_dXXX_u0ivakcnk_s11282_p1_t1051341556
Backup Set           9656   20-SEP-20         
  Backup Piece       9656   20-SEP-20          bk_dXXX_u1hvasgcv_s11313_p1_t1051607455
Backup Set           9657   20-SEP-20         
  Backup Piece       9657   20-SEP-20          bk_dXXX_u1ivasgdv_s11314_p1_t1051607487
Backup Set           9661   20-SEP-20         
  Backup Piece       9661   20-SEP-20          arch_dXXX_u1kvat9se_s11316_p1_t1051633550
Backup Set           9666   21-SEP-20         
  Backup Piece       9666   21-SEP-20          bk_dXXX_u1vvau6d5_s11327_p1_t1051662757
Backup Set           9667   21-SEP-20         
  Backup Piece       9667   21-SEP-20          bk_dXXX_u20vau6dn_s11328_p1_t1051662775
Backup Set           9675   21-SEP-20         
  Backup Piece       9675   21-SEP-20          arch_dXXX_u21vauj0l_s11329_p1_t1051675669
Backup Set           9676   21-SEP-20         
  Backup Piece       9676   21-SEP-20          ctrl_dXXX_u26vaumdb_s11334_p1_t1051679147
Backup Set           9681   22-SEP-20         
  Backup Piece       9681   22-SEP-20          bk_dXXX_u2evb0rld_s11342_p1_t1051750061
Backup Set           9682   22-SEP-20         
  Backup Piece       9682   22-SEP-20          bk_dXXX_u2fvb0rmd_s11343_p1_t1051750093
Backup Set           9691   22-SEP-20         
  Backup Piece       9691   22-SEP-20          ctrl_dXXX_u2lvb17e7_s11349_p1_t1051762119
Backup Set           9697   22-SEP-20         
  Backup Piece       9697   22-SEP-20          bk_dXXX_u2tvb3d3k_s11357_p1_t1051833460
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of delete command at 09/23/2020 17:00:04
RMAN-06091: no channel allocated for maintenance (of an appropriate type)

查看备份信息:
RMAN> list backup summary;
List of Backups
===============
Key     TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
9669    B  1  A SBT_TAPE    21-SEP-20       1       1       NO         TAG20200920T181543
9670    B  1  A SBT_TAPE    21-SEP-20       1       1       NO         TAG20200920T181543
9671    B  A  A SBT_TAPE    21-SEP-20       1       1       NO         TAG20200921T040740
9672    B  A  A SBT_TAPE    21-SEP-20       1       1       NO         TAG20200921T040740
9673    B  A  A SBT_TAPE    21-SEP-20       1       1       NO         TAG20200921T040740
9674    B  A  A SBT_TAPE    21-SEP-20       1       1       NO         TAG20200921T040740
9675    B  A  A SBT_TAPE    21-SEP-20       1       1       NO         TAG20200921T040740
...
...
9702    B  A  A SBT_TAPE    23-SEP-20       1       1       NO         TAG20200923T033003
9703    B  A  A SBT_TAPE    23-SEP-20       1       1       NO         TAG20200923T033003
9704    B  A  A SBT_TAPE    23-SEP-20       1       1       NO         TAG20200923T033003
9705    B  A  A SBT_TAPE    23-SEP-20       1       1       NO         TAG20200923T033003
9706    B  A  U SBT_TAPE    23-SEP-20       1       1       NO         TAG20200923T033003
9707    B  F  A SBT_TAPE    23-SEP-20       1       1       NO         TAG20200923T041616

可以看出这些备份记录都属于磁带上的备份

错误分析:

      出现这样的错误是因为这些备份集处于SBT磁带机上,在控制文件中仍然记录了一些被分在磁带上的备份集信息,因为连不上磁带机, 所以没法用类似于delete obsolete 或者 delete backupset xxx这样的命令去删除这些备份集的信息,需要手动分配磁带类型通道才可以删除。

手动分配磁带类型通道:

从网上找到分配磁带通道的方式
RMAN> allocate channel for maintenance device type sbt
parms 'SBT_LIBRARY=Oracle.disksbt,
ENV=(BACKUP_DIR=/tmp)';
allocated channel: ORA_MAINT_SBT_TAPE_4
channel ORA_MAINT_SBT_TAPE_4: SID=2131 device type=SBT_TAPE
channel ORA_MAINT_SBT_TAPE_4: WARNING: Oracle Test Disk API

RMAN> delete obsolete;


再次查看备份集信息,发现居然还有SBT类型的备份,并没有清理
RMAN> list backup summary;
List of Backups
===============
Key     TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
9669    B  1  A SBT_TAPE    21-SEP-20       1       1       NO         TAG20200920T181543
9670    B  1  A SBT_TAPE    21-SEP-20       1       1       NO         TAG20200920T181543
9671    B  A  A SBT_TAPE    21-SEP-20       1       1       NO         TAG20200921T040740
9672    B  A  A SBT_TAPE    21-SEP-20       1       1       NO         TAG20200921T040740
9673    B  A  A SBT_TAPE    21-SEP-20       1       1       NO         TAG20200921T040740
9674    B  A  A SBT_TAPE    21-SEP-20       1       1       NO         TAG20200921T040740
9675    B  A  A SBT_TAPE    21-SEP-20       1       1       NO         TAG20200921T040740
...
...
9702    B  A  A SBT_TAPE    23-SEP-20       1       1       NO         TAG20200923T033003
9703    B  A  A SBT_TAPE    23-SEP-20       1       1       NO         TAG20200923T033003
9704    B  A  A SBT_TAPE    23-SEP-20       1       1       NO         TAG20200923T033003
9705    B  A  A SBT_TAPE    23-SEP-20       1       1       NO         TAG20200923T033003
9706    B  A  U SBT_TAPE    23-SEP-20       1       1       NO         TAG20200923T033003
9707    B  F  A SBT_TAPE    23-SEP-20       1       1       NO         TAG20200923T041616

尝试再次手动分配磁带通道

RMAN> allocate channel for maintenance device type sbt parms 'SBT_LIBRARY=oracle.disksbt, ENV=(BACKUP_DIR=/tmp)';
allocated channel: ORA_MAINT_SBT_TAPE_4
channel ORA_MAINT_SBT_TAPE_4: SID=2131 device type=SBT_TAPE
channel ORA_MAINT_SBT_TAPE_4: WARNING: Oracle Test Disk API
注:如果曾经使用过SBT,现在没有磁带备份设备,而且rman也无法连接到磁带通道,oracle给出上述测试API。

再次执行crsscheck backup(必须的操作)
RMAN> crosscheck backup;
RMAN> delete expired backup;
RMAN> delete  obsolete;
RMAN> list backup summary;
List of Backups
===============
Key     TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- --------------- ------- ------- ---------- ---
清除成功

结论:
      从上述可看到,未删除的SBT备份是因其SBT_TAPE 不匹配状态,
手动分配SBT_TAPE后,需再次执行CROSSCHECK检查备份的有效性.

附加:
如果想要单独删除本地备份记录应该如何删除:

RMAN> allocate channel for maintenance type disk;
RMAN> delete obsolete device type disk;
这样执行会将本地磁盘的obsolete备份删除
但是无法删除存放在磁带上的备份信息
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值