最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

无法删除RMAN过期备份

来源:动视网 责编:小采 时间:2020-11-09 12:08:49
文档

无法删除RMAN过期备份

无法删除RMAN过期备份:绝对好使,但是代价较大,不仅之前备份统统无效,而且还需要停数据库服务,由于要操作的是一台较重要的生产服务器,因此这种 RMAN> report obsolete 直接delete会报这个错误:RMAN> delete obsolete; RMAN 保留策略将应用于该命令将 RMAN 保留
推荐度:
导读无法删除RMAN过期备份:绝对好使,但是代价较大,不仅之前备份统统无效,而且还需要停数据库服务,由于要操作的是一台较重要的生产服务器,因此这种 RMAN> report obsolete 直接delete会报这个错误:RMAN> delete obsolete; RMAN 保留策略将应用于该命令将 RMAN 保留


绝对好使,但是代价较大,不仅之前备份统统无效,而且还需要停数据库服务,由于要操作的是一台较重要的生产服务器,因此这种

RMAN> report obsolete

直接delete会报这个错误:
RMAN> delete obsolete;
RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 1
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=136 devtype=DISK
释放的通道: ORA_DISK_1

crosscheck也不行
RMAN> crosscheck backup;
a分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=136 devtype=DISK
释放的通道: ORA_DISK_1

解决方式:
  1、重建控制文件。
  绝对好使,但是代价较大,不仅之前备份统统无效,而且还需要停数据库服务,由于要操作的是一台较重要的生产服务器,因此这种方法不可行。
  2、通过rman命令手工将备份集状态置为unavailable。
  RMAN提供了一个change命令,可以修改备份集状态为AVAILABLE/UNAVAILABLE/UNCATALOG等等。手工使用该命令将所有不可访问的备份集置为unavailable,,修改完状态后等待控制文件自动更新覆盖失效记录即可。这种方式最大的问题是见效太慢。
  注意,nocatalog模式才能使用这种方式。
  3、借助dbms_backup_restore包直接删除备份片段。通过dbms_backup_restore.deleteBackupPiece过程删除无法访问的备份集。
dbms_backup_restore.deleteBackupPiece的定义如下:
前6项参数都需要我们指定,这些参数的参数值可以从v$backup_piece中获得。
SQL> select recid,stamp,set_stamp,set_count,handle,piece# from v$backup_piece;

RECID STAMP SET_STAMP SET_COUNT HANDLE PIECE#
---------- ---------- ---------- ---------- ------------------------------ ----------
11301 674167385 674167385 11411 c-1984618042-20081222-00 1
11304 674168006 674168005 11414 c-1984618042-20081222-01 1
11306 674168089 674168089 11416 c-1984618042-20081222-02 1
11312 674253707 674253707 11422 c-1984618042-20081223-00 1
11315 674254316 674254315 11425 c-1984618042-20081223-01 1
11317 674254397 674254397 11427 c-1984618042-20081223-02 1

执行删除RMAN过期备份
SQL> DECLARE
devtype varchar2(256);
BEGIN
devtype:=dbms_backup_restore.deviceAllocate (type=>'',ident=>'t1');
dbms_backup_restore.deleteBackupPiece(recid => 11301,stamp => 674167385,handle => 'c-1984618042-20081222-00',set_stamp => 674167385 ,set_count => 11411 ,pieceno => 1);
dbms_backup_restore.deviceDeallocate;
END;
/
SQL> select 'dbms_backup_restore.deleteBackupPiece(recid =>' || recid || ',stamp =>' || stamp || ',handle =>''' || HANDLE || ''',set_stamp =>' || SET_STAMP || ',set_count =>' || SET_COUNT || ',pieceno =>' || PIECE# || ');' sqlt
from v$backup_piece

文档

无法删除RMAN过期备份

无法删除RMAN过期备份:绝对好使,但是代价较大,不仅之前备份统统无效,而且还需要停数据库服务,由于要操作的是一台较重要的生产服务器,因此这种 RMAN> report obsolete 直接delete会报这个错误:RMAN> delete obsolete; RMAN 保留策略将应用于该命令将 RMAN 保留
推荐度:
标签: 过期 删除 备份
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top