1. 程式人生 > >刪除過期備份時報no channel allocated for maintenance(of an appropriate type)

刪除過期備份時報no channel allocated for maintenance(of an appropriate type)

刪除過期備份時報no channel allocated for maintenance(of an appropriate type)

問題描述:AIX 平臺Oracle 10G,今天發現數據庫歸檔空間滿了,就通過crosscheck 後,執行delete force obsolete時報no channel allocated for maintenance(of an appropriate type) 錯誤,

原因分析:經過查詢可能是因為在之前的備份過程中采用了不同設備類型備份導致不能正常刪除過期的備份

解決方案:

先摘錄一段對CROSSCHECK的描述

當archivelog或是backup被手工刪除後,需要運行crosscheck.該命令確保recovery catalog或是控制文件中記錄的數據與硬盤上的文件一致。

對於找不到的文件,CROSSCHECK會把它的狀態標為EXPIRED.然後,你運行DELETE EXPIRED命令就可以把rman repository中的相關記錄和硬盤上的文件刪除。

如果有些文件被錯誤地標為EXPIRED,那麽在確認文件存在時,再次運行CROSSCHECK BACKUP可以將這些文件重置為AVAILABLE狀態。

也就是說,對於硬盤上已經不存在的文件,用DELETE EXPIRED在RMAN中刪除相關記錄。對於已經超過retention policy的備份,用DELETE OBSOLETE從硬盤和磁帶設備上刪除,並從RMAN中把記錄刪除。

在執行完

Crosscheck backup;

Crossscheck backuppiece;

Crosscheck archivelog all;

Delete obsolete;報RMAN-06091: no channel allocated for maintenance (of an appropriate type)

研究了一下,之前的備份一部分是直接備份在硬盤上,另一部分是通過DP備份在磁帶上的。出現這樣的錯誤是因為有磁帶上的數據,但是未申請磁帶類型的channel造成的。

RMAN> allocate channel for maintenance type disk;

allocated channel: ORA_MAINT_DISK_6

channel ORA_MAINT_DISK_6: sid=137 devtype=DISK

RMAN> delete expired archivelog all;

specification does not match any archive log in the recovery catalog

這個應該是正常的,沒有發現expired log.

RMAN> delete obsolete;

RMAN retention policy will be applied to the command

RMAN retention policy is set to redundancy 1

Deleting the following obsolete backups and copies:

Type Key Completion Time Filename/Handle

-------------------- ------ ------------------ --------------------

Backup Set 2499 2011-11-24 11:39:28

Backup Piece 2511 2011-11-24 11:39:28 swt-oracle-full<gz_7:768051562:1>.dbf

Backup Set 2564 2011-11-26 21:18:57

Backup Piece 2567 2011-11-26 21:18:57 /backup/arc0dmsld1e

Backup Set 2950 2011-12-14 14:45:40

Backup Piece 2955 2011-12-14 14:45:40 /u01/oracle/flash_recovery_area/GZ/backupset/2011_12_14/o1_mf_annnn_TAG20111214T144526_7gjkjly0_.bkp

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of delete command at 12/15/2011 17:05:42

RMAN-06091: no channel allocated for maintenance (of an appropriate type)

這裏出錯了

解決的辦法是分別刪除硬盤上與磁帶上的過期備份數據。

RMAN>delete obsolete device type disk;--指定設備類型,這樣就可以刪除指定的設備中的數據

刪除硬盤上的過期備份

RMAN retention policy will be applied to the command

RMAN retention policy is set to redundancy 1

Deleting the following obsolete backups and copies:

Type Key Completion Time Filename/Handle

-------------------- ------ ------------------ --------------------

Backup Set 2509 2011-11-24 14:28:32

Backup Piece 2521 2011-11-24 14:28:32 /backup/sp

Backup Set 2564 2011-11-26 21:18:57

Backup Piece 2567 2011-11-26 21:18:57 /backup/arc0dmsld1e

Backup Set 2565 2011-11-26 21:19:20

Backup Piece 2568 2011-11-26 21:19:20 /backup/arc0emsld29

Control File Copy 2709 2011-11-26 21:42:33 /var/opt/omni/tmp/ctrl_gz.dbf

Backup Set 2885 2011-11-27 20:44:15

Backup Piece 2888 2011-11-27 20:44:15 /backup/db_full_31.1

Control File Copy 2898 2011-11-27 20:43:57 /backup/bj.ctl

Backup Set 2886 2011-11-27 20:44:21

Backup Piece 2889 2011-11-27 20:44:21 /backup/db_full_32.1

Backup Set 2950 2011-12-14 14:45:40

Backup Piece 2955 2011-12-14 14:45:40 /u01/oracle/flash_recovery_area/GZ/backupset/2011_12_14/o1_mf_annnn_TAG20111214T144526_7gjkjly0_.bkp

Backup Set 2951 2011-12-14 14:45:46

Do you really want to delete the above objects (enter YES or NO)? YES

deleted backup piece

backup piece handle=/backup/db_full_31.1 recid=31 stamp=768343384

deleted control file copy

control file copy filename=/backup/bj.ctl recid=4 stamp=768343437

deleted backup piece

backup piece handle=/backup/db_full_32.1 recid=32 stamp=768343461

deleted backup piece

backup piece handle=/u01/oracle/flash_recovery_area/GZ/backupset/2011_12_14/o1_mf_annnn_TAG20111214T144526_7gjkjly0_.bkp recid=38 stamp=769877137

deleted backup piece

Deleted 17 objects

deleted backup piece

backup piece handle=/backup/sp recid=11 stamp=768061712

deleted backup piece

backup piece handle=/backup/arc0dmsld1e recid=13 stamp=768259119

deleted backup piece

backup piece handle=/backup/arc0emsld29 recid=14 stamp=768259146

Deleted 3 objects

這回成功了

RMAN> allocate channel for maintenance device type ‘sbt_tape‘ PARMS ‘ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=gz,OB2BARLIST=swt-oracle-full)‘;

這裏PARMS後面的參數與備份時RMAN腳本中的參數相同

allocated channel: ORA_MAINT_SBT_TAPE_7

channel ORA_MAINT_SBT_TAPE_7: sid=136 devtype=SBT_TAPE

channel ORA_MAINT_SBT_TAPE_7: Data Protector A.06.11/243

RMAN> delete obsolete;

RMAN retention policy will be applied to the command

RMAN retention policy is set to redundancy 1

Deleting the following obsolete backups and copies:

Type Key Completion Time Filename/Handle

-------------------- ------ ------------------ --------------------

Backup Set 2499 2011-11-24 11:39:28

Backup Piece 2511 2011-11-24 11:39:28 swt-oracle-full<gz_7:768051562:1>.dbf

Do you really want to delete the above objects (enter YES or NO)? yes

deleted backup piece

backup piece handle=swt-oracle-full<gz_7:768051562:1>.dbf recid=1 stamp=768051562

Deleted 26 objects

這樣就成功了




本文出自 “我主梁緣” 博客,請務必保留此出處http://xiaocao13140.blog.51cto.com/6198256/1970938

刪除過期備份時報no channel allocated for maintenance(of an appropriate type)