I ran into a corrupt block which makes rman backup fail:
released channel: backup_ch1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup plus archivelog command at 12/08/2015 01:58:24
RMAN-03009: failure of backup command on backup_ch1 channel at
12/08/2015 01:58:01
ORA-19566: exceeded limit of 0 corrupt blocks for file
+DATA/prod/datafile/indexes.1030.873578613
OK, let's see what is it:
SQL> select file#,block# from v$database_block_corruption;
FILE# BLOCK#
---------- ----------
36 3650527
SQL> select owner,segment_name,segment_type
2 from dba_extents
3 where file_id=36 and
4 block_id<=3650527 and
5 block_id+blocks>=3650527;
no rows selected
Great! No segments are affected! Let's fix it:
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights
reserved.
connected to target database: PROD (DBID=204240718)
RMAN> recover corruption list;
Starting recover at 08-DEC-15
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 12/08/2015 15:23:40
RMAN-05009: Block Media Recovery requires Enterprise Edition
RMAN>
@#$%! and standard edition! Does anyone have an idea how to fix it,
short of taking the entire tablespace offline and recovering it? The
tablespace contains indexes for the central application schema and such
a procedure would amount to downtime, which would sit well with the
customer. I cannot use DBMS_REPAIR because this repairs objects and the
corrupt block is not in any segment. Backup validate datafile 36 still
finds corrupt blocks, which means that the subsequent backup will fail.
--
Mladen Gogala
Oracle DBA
http://mgogala.freehostia.com