欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

RMAN-03002 RMAN-06091 错误解决方法

程序员文章站 2022-06-12 21:50:53
...

客户自从使用nbu 以来一直报这个错误。因为以前一直都是正常的。所以晚上先让停止了nbu的备份。单独使用以前的脚本正常。报错信息

客户自从使用nbu 以来一直报这个错误。因为以前一直都是正常的。所以晚上先让停止了nbu的备份。单独使用以前的脚本正常。报错信息一样。所以怀疑是不是脚本的问题。
查询网上分析原因如下:

Symptoms
When attempting to delete obsolete backups from RMAN using the following command:

RMAN> delete obsolete;

the following error occurs:

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of delete command at 05/07/2008 22:04:21
RMAN-06091: no channel allocated for maintenance (of an appropriate type)

.


Cause
Tape channel had not being allocated when attempt to delete obsolete backup on tape.


Using the following command to verify that there are backup sets on tape.


RMAN> list backup;
List of Backup Sets
===================

BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
1 Incr 0 113.25M SBT_TAPE 00:08:35 01-MAR-08
BP Key: 1 Status: AVAILABLE Compressed: NO Tag: HOT_DB_BK_LEVEL0
Handle: bk_4_1_648250152 Media:
List of Datafiles in backup set 1
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
5 0 Incr 1342657 01-MAR-08 /u01/Oracle/app/oracle/oradata/test/undotbs2
75 0 Incr 1342657 01-MAR-08 /u01/oracle/app/oracle/oradata/test/USER_DAT_08_vg3_002
91 0 Incr 1342657 01-MAR-08 /u01/oracle/app/oracle/oradata/test/USER_DAT_12_vg3_002

==>The Device Type is SBT_TAPE.

Solution
To implement the solution, please execute the following steps:

Please run the following commands to delete obsolete backup sets on both disk and tape:

RMAN> allocate channel for maintenance type disk;
RMAN> allocate channel for maintenance device type 'sbt_tape' PARMS '...';
==>Please change '...' to your actual tape params
RMAN> delete obsolete;


If you want to delete obsolete backup sets on disk, you can use the following commands:
RMAN> allocate channel for maintenance type disk;
RMAN> delete obsolete device type disk;、

说的很明白说是没有分配为维护通道。

我只修改了rman_backup.sh中的语句。
#delete noprompt obsolete;
#allocate channel c1 type disk;
将上面的语句改为下面的。
allocate channel for maintenance type disk; #this is add by yt 2012 2 21
delete obsolete device type disk; #this is add by yt 2012 2 21

我试着单独执行这两句:

RMAN> allocate channel for maintenance type disk;

allocated channel: ORA_MAINT_DISK_2
channel ORA_MAINT_DISK_2: sid=736 instance=cmsxty1 devtype=DISK

RMAN> delete noprompt 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
-------------------- ------ ------------------ --------------------
Control File Copy 1 01-JAN-12 /backup/1101/standby01.ctl

RMAN-06207: WARNING: 1 objects could not be deleted for DISK channel(s) due
RMAN-06208: to mismatched status. Use CROSSCHECK command to fix status
RMAN-06210: List of Mismatched objects
RMAN-06211: ==========================
RMAN-06212: Object Type Filename/Handle
RMAN-06213: --------------- ---------------------------------------------------
RMAN-06214: Datafile Copy /backup/1101/standby01.ctl

提示我 有个备份找不到不让删除。

继续执行下面的语句

RMAN>DELETE FORCE NOPROMPT OBSOLETE DEVICE TYPE DISK;

删除成功。

看了少了个force,,至于这个force在这里的作用我下来得好好研究下。

最后脚本更改如下。备份正常。

run {
allocate channel c1 type disk;
backup database include current controlfile format '/backup/rman_cmsxty_full_%s_%T.bak';
sql 'alter system archive log current';
backup archivelog all delete input format '/backup/rman_cmsxty_arc_%s_%T.bak';
backup current controlfile format '/backup/rman_cmsxty_ctl_%s_%T.bak';
release channel c1;
}
report obsolete;
crosscheck archivelog all;
crosscheck backup;
allocate channel for maintenance type disk;
DELETE FORCE NOPROMPT OBSOLETE DEVICE TYPE DISK;
EOF

RMAN-03002 RMAN-06091 错误解决方法