Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: dbv - Found block already marked corrupted
Mike,
Excellent analysis! I agree that the block is likely allocated to a segment
but has not yet been used by the segment in question. That is, it resides
"above" the segment's "high-water mark"...
You can find out for certain (if the segment is in a "freelist-managed" tablespace, i.e. SEGMENT_SPACE_MANAGEMENT = 'MANUAL') by calling the DBMS_SPACE.UNUSED_SPACE procedure on the segment. Three of the OUT parameters returned are:
last_used_block last_used_extent_file_id last_used_extent_block_id
I've attached source for a PL/SQL stored procedure that makes using the DBMS_SPACE packaged procedures a little easier. I don't have it posted on www.evdbt.com yet, but I'll get it done soon...
One further question, though...
>> Of course, if someone knows a utility to un-flag a block I'm all ears.
Why would anyone want to "unflag" a block that has been flagged as corrupt? I'm all ears for that... :-)
-Tim
on 1/30/04 9:14 AM, Hately, Mike (LogicaCMG) at mike.hately_at_nedl.co.uk wrote:
> Hi,
> corruptions of this kind can be caused by recovery operations that 'roll
> through' operations that were performed as NOLOGGING. This is because Oracle
> can't be sure that the object was not changed so the blocks are marked as
> corrupt.
> It may be that the blocks in question are not actually in use by the object
> even though they are allocated to it. If this is the case they'll be
> formatted when they're eventually used.
> Oracle considers that these blocks are not in use and for that reason it
> reports a message and does not increment the "Pages Failing" statistics
> produced when dbv completes.
> I don't know of a way to corect this problem without recreating the object
> (which would certainly fix the messages). As you've already found, the
> object itself is not corrupted so the only problem is the spurious messages.
> It's up to you whether you think an ALTER TABLE MOVE is worth the hassle
> just to fix those messages.
> Of course, if someone knows a utility to un-flag a block I'm all ears.
>
> Cheers,
> Mike Hately
>
> -----Original Message-----
> From: Kaing, Leng [mailto:Leng.Kaing_at_team.telstra.com]
> Sent: 30 January 2004 06:05
> To: oracle-l_at_freelists.org
> Subject: FW: dbv - Found block already marked corrupted
> Importance: High
>
>
>> Hi Guys, >> =20 >> Sorry if this is covering old grounds... I ran dbv against our =
>> =20 >> Found block already marked corrupted >> Block Checking: DBA =3D 29363614, Block Type =3D >> Found block already marked corrupted >> Block Checking: DBA =3D 29363615, Block Type =3D >> =20 >> I then ran cdba and converted it to fileid and blockid, analyzed the =
>> =20 >> TIA, >> =20 >> Leng. >> =20 >> ---------------------------------------------------------- >> Leng Kaing >> Email: leng.kaing_at_team.telstra.com >> Phone: +61-3-9203-7589 >> Mobile: +61-417-371-348
-- Archives are at http://www.freelists.org/archives/oracle-l/ FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html -----------------------------------------------------------------Received on Fri Jan 30 2004 - 14:46:04 CST
![]() |
![]() |