近期遇见一个当进行控制文件备份记录维护的时候发生备份记录无法清除的现象,具体过程记录如下:
1、遇到当用rman维护oracle数据库的备份时,发生RMAN-06091: no channel allocated for maintenance (of an appropriate type)的现象,如下图:
2、当查看备份文件时,文件的disk_type类型为SBT_TAPE,如下图:
3、经过排查发现原来客户使用的是单机环境,单机环境下备份采用的是备份一体机,近期又从单机迁移到了双机,但是已经和备份一体机失去了连通性,在迁移之前工程师又没有进行控制文件删除备份记录的操作,导致迁移过来后无法直接删除记录的现象。
4、那么如何在此种情况下对原有的备份记录进行清除呢,这需要为维护操作分配一条SBT类型的维护通道,进入rman模式,su - oracle;rman target /
5、然后输入如图命令,如下图:
6、然后输入delete expired backup,提示有些备份状态不匹配,需要用crosscheck 命令进行状态修正,如下图:
7、按照提示对备份进行交叉校验,crosscheck backup,如下图:
8、交叉校验完成以后,再次备份记录的删除,发现可以正常执行命令,如下图:
9、再次查看数据库的备份记录,在迁移之前的备份记录状态已经彻底删除,如下图: