关于RMAN-06207和RMAN-06208错误的分析以及解决办法

 

近段时间以来对手上两个维护的数据库备份监控,分别发现两个告警,现在分别作个说明。

通过查询:SELECT STATUS,OPERATION,TO_CHAR(END_TIME,'YYYY-MM-DD HH24:MI:SS'),COMMAND_ID  FROM V$RMAN_STATUS ORDER BY 4 DESC;

STATUS OPERATION TO_CHAR(END_TIME,'YYYY-MM-DDHH COMMAND_ID
COMPLETED DELETE 2011-10-31 11:46:25 2011-10-31T11:45:07
COMPLETED RMAN 2011-10-31 16:24:10 2011-10-31T11:45:07
COMPLETED WITH WARNINGS DELETE 2011-10-31 12:10:56 2011-10-31T11:45:07
COMPLETED DELETE 2011-10-31 12:12:18 2011-10-31T11:45:07
FAILED DELETE 2011-10-31 12:33:00 2011-10-31T11:45:07
COMPLETED DELETE 2011-10-31 12:13:03 2011-10-31T11:45:07

发现有一个状态是有告警的,进一步分析备份日志发现:
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           6446   26-AUG-11
  Backup Piece       6446   26-AUG-11          /dbbak/b1mktu8g_1_1
Backup Set           6824   29-SEP-11
  Backup Piece       6824   29-SEP-11          /dbbak/databak/c-730968613-20110929-00
deleted backup piece
backup piece handle=/dbbak/databak/c-730968613-20110929-00 recid=6824 stamp=763088853
Deleted 1 objects

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: Backup Piece    /dbbak/b1mktu8g_1_1
/dbbak/b1mktu8g_1_1 文件是先前备份目录下的备份文件,上次换目录时,手工删除了,因此报这个错误,但是只抱这个错误不足为怪,问题时我 crosscheck backupset;时根本就不对这个文件校验,

RMAN> crosscheck backupset;

using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=382 instance=tjdb1 devtype=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: sid=1648 instance=tjdb1 devtype=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: sid=377 instance=tjdb1 devtype=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: sid=392 instance=tjdb1 devtype=DISK
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/dbbak/databak/1rmqe9j0_1_1 recid=7176 stamp=765929062
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/dbbak/databak/1qmqe9iv_1_1 recid=7177 stamp=765929059
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/dbbak/databak/1pmqe9iu_1_1 recid=7178 stamp=765929062
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/dbbak/databak/1omqe9iu_1_1 recid=7179 stamp=765929058
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/dbbak/databak/20mqeklv_1_1 recid=7181 stamp=765940421
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/dbbak/databak/1vmqeklv_1_1 recid=7182 stamp=765940420
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/dbbak/databak/21mqelmp_1_1 recid=7183 stamp=765941467
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/dbbak/databak/1tmqeklv_1_1 recid=7184 stamp=765940416
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/dbbak/databak/1umqeklv_1_1 recid=7185 stamp=765940419
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/dbbak/databak/c-730968613-20111031-01 recid=7186 stamp=765941821
Crosschecked 10 objects

delete expired backupset;时自然也就不去在控制文件里删除这个文件了,

RMAN> delete expired backupset;

using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
using channel ORA_DISK_4

执行 delete obsolete;时还是报RMAN-06207的错误。

RMAN> delete obsolete;

RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 1
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
using channel ORA_DISK_4
Deleting the following obsolete backups and copies:
Type                 Key    Completion Time    Filename/Handle
-------------------- ------ ------------------ --------------------
Backup Set           6446   26-AUG-11        
  Backup Piece       6446   26-AUG-11          /dbbak/b1mktu8g_1_1

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

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: Backup Piece    /dbbak/b1mktu8g_1_1

莫非需要指定备份集进行校验吗?试试看:

RMAN> crosscheck backupset 6446;

using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
using channel ORA_DISK_4
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/dbbak/b1mktu8g_1_1 recid=6446 stamp=760150291
Crosschecked 1 objects
这次校验能校验上了,看来还需要指定备份集进行校验啊,再来删除:

RMAN> delete obsolete;

RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 1
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
using channel ORA_DISK_4
Deleting the following obsolete backups and copies:
Type                 Key    Completion Time    Filename/Handle
-------------------- ------ ------------------ --------------------
Backup Set           6446   26-AUG-11        
  Backup Piece       6446   26-AUG-11          /dbbak/b1mktu8g_1_1

Do you really want to delete the above objects (enter YES or NO)? yes
deleted backup piece
backup piece handle=/dbbak/b1mktu8g_1_1 recid=6446 stamp=760150291
Deleted 1 objects
删除成功,问题解决!

或者通过下面的方式校验也能删除:

RMAN> change backupset 6446 crosscheck ;

后来官方文档发现,其实还有一种解决办法:

RMAN> delete force backupset 6446;  ------强制删除。

因为文件已经删掉了,没法验证,下次如在其他地方碰到再验证一下:)

实例

SQL>SELECT STATUS,OPERATION,TO_CHAR(END_TIME,'YYYY-MM-DD HH24:MI:SS'),COMMAND_ID FROM V$RMAN_STATUS ORDER BY 4 DESC;

COMPLETED

DELETE 2013-2-18 0:33 2013-02-18T00:30:02
FAILED BACKUP 2013-2-18 0:33 2013-02-18T00:30:02
COMPLETED BACKUP 2013-2-18 0:33 2013-02-18T00:30:02
COMPLETED CONTROL FILE AUTOBACKUP 2013-2-18 0:32 2013-02-18T00:30:02
COMPLETED BACKUP 2013-2-18 0:33 2013-02-18T00:30:02
COMPLETED DELETE 2013-2-18 0:34 2013-02-18T00:30:02
COMPLETED BACKUP 2013-2-18 0:33 2013-02-18T00:30:02
COMPLETED WITH ERRORS RMAN 2013-2-18 0:34 2013-02-18T00:30:02
COMPLETED LIST 2013-2-18 0:34 2013-02-18T00:30:02
COMPLETED REPORT 2013-2-18 0:33 2013-02-18T00:30:02

查询备份日志

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 02/18/2013 00:33:49
RMAN-06062: can not backup SPFILE because the instance was not started with SPFILE

查询启动方式

SQL>select decode(count(*),1,'spfile','pfile') from v$spparameter where rownum=1 and isspecified = 'TRUE';

DECODE
------
pfile

果然是pfile  重新启动数据库,会自动切换的spfile了(也可以设置spfile启动)

查询数据库用使用的参数文件类型:
SQL>show parameter spfile

两个参数文件相互转换
。如果在\database(windows)、/dbs(Unix)目录中,同时存在spfileSID.ora及initSID.ora,则spfileSID.ora优先使用
。转换方法:
SQL>create spfile from pfile;
SQL>create pfile from spfile;

修改完成后

COMPLETED RMAN 2013-2-18 11:35 2013-02-18T11:32:08
COMPLETED BACKUP 2013-2-18 11:35 2013-02-18T11:32:08
COMPLETED LIST 2013-2-18 11:35 2013-02-18T11:32:08
COMPLETED DELETE 2013-2-18 11:35 2013-02-18T11:32:08
COMPLETED CONTROL FILE AND SPFILE AUTOBACK 2013-2-18 11:34 2013-02-18T11:32:08
COMPLETED BACKUP 2013-2-18 11:35 2013-02-18T11:32:08
COMPLETED REPORT 2013-2-18 11:35 2013-02-18T11:32:08
COMPLETED DELETE 2013-2-18 11:35 2013-02-18T11:32:08
COMPLETED CONTROL FILE AND SPFILE AUTOBACK 2013-2-18 11:35 2013-02-18T11:32:08
COMPLETED BACKUP 2013-2-18 11:34 2013-02-18T11:32:08

猜你喜欢

转载自blog.csdn.net/upcorange/article/details/8587155
今日推荐