dbTalk Databases Forums  

Determine Date of Records Associated With Corrupt Block

comp.databases.oracle.server comp.databases.oracle.server


Discuss Determine Date of Records Associated With Corrupt Block in the comp.databases.oracle.server forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
if_investor@yahoo.com
 
Posts: n/a

Default Determine Date of Records Associated With Corrupt Block - 06-15-2011 , 12:39 PM






Hi,

In a test server we have a corrupt data block in a table that is about
17GB in
size. DBVerify and validate structure both identified the same corrupt
block.
(File#f, block #y). Oracle is 10.2.0.4.

That table has a field named DATE, and there is an index on DATE.

Is there a way to use the index in order to identify the date(s)
of the data that was on the corrupt block?

For example, suppose that DBVerify and Validate Structure
indicate that file#100, block#99999 is corrupt.

Is there a way to check the value of the date field in index TABLE-
DATE
associated with this file/block?



Thanks,
QZ

Reply With Quote
  #2  
Old   
John Hurley
 
Posts: n/a

Default Re: Determine Date of Records Associated With Corrupt Block - 06-15-2011 , 12:57 PM






On Jun 15, 1:39*pm, "if_inves... (AT) yahoo (DOT) com"
<basis_consult... (AT) hotmail (DOT) com> wrote:
Quote:
Hi,

In a test server we have a corrupt data block in a table that is about
17GB in
size. DBVerify and validate structure both identified the same corrupt
block.
(File#f, block #y). Oracle is 10.2.0.4.

That table has a field named DATE, and there is an index on DATE.

Is there a way to use the index in order to identify the date(s)
of the data that was on the corrupt block?

For example, suppose that DBVerify and Validate Structure
indicate that file#100, block#99999 is corrupt.

Is there a way to check the value of the date field in index TABLE-
DATE
associated with this file/block?

Thanks,
QZ
Try doing a block dump or use the dd command to look at the data
inside the block.

Reply With Quote
  #3  
Old   
joel garry
 
Posts: n/a

Default Re: Determine Date of Records Associated With Corrupt Block - 06-15-2011 , 01:01 PM



On Jun 15, 10:39*am, "if_inves... (AT) yahoo (DOT) com"
<basis_consult... (AT) hotmail (DOT) com> wrote:
Quote:
Hi,

In a test server we have a corrupt data block in a table that is about
17GB in
size. DBVerify and validate structure both identified the same corrupt
block.
(File#f, block #y). Oracle is 10.2.0.4.

That table has a field named DATE, and there is an index on DATE.

Is there a way to use the index in order to identify the date(s)
of the data that was on the corrupt block?

For example, suppose that DBVerify and Validate Structure
indicate that file#100, block#99999 is corrupt.

Is there a way to check the value of the date field in index TABLE-
DATE
associated with this file/block?

Thanks,
QZ
Richard Foote has an interesting article about ora_hash:
http://richardfoote.wordpress.com/20...ast-slow-burn/

I'm wondering if you could use that method to get the rowid of the
index, then use that rowid as a predicate on a query to see the date
in the index.

Just thinking out loud, of course. At least you could dump the index
block.

Rowid format: http://download.oracle.com/docs/cd/E...l.htm#BABFFFCE

jg
--
@home.com is bogus.
My respect for Symantec has increased:
http://web.signonsandiego.com/news/2...s-way-success/

Reply With Quote
  #4  
Old   
Jonathan Lewis
 
Posts: n/a

Default Re: Determine Date of Records Associated With Corrupt Block - 06-15-2011 , 01:36 PM



You have the file number, block number and data object id of the table, so
you can use dbms_rowid to create a rowid for row 0 and row 4095 for that
block, then a query like:

select /*+ index_ffs(alias index) */
rowid,
date_column
from
table
where rowid between {rowid0} and {rowid4095}
and date_column is not null
;

Should do an index fast full scan of the index to return the data.


--
Regards

Jonathan Lewis
http://jonathanlewis.wordpress.com


"if_investor (AT) yahoo (DOT) com" <basis_consultant (AT) hotmail (DOT) com> wrote

Quote:
Hi,

In a test server we have a corrupt data block in a table that is about
17GB in
size. DBVerify and validate structure both identified the same corrupt
block.
(File#f, block #y). Oracle is 10.2.0.4.

That table has a field named DATE, and there is an index on DATE.

Is there a way to use the index in order to identify the date(s)
of the data that was on the corrupt block?

For example, suppose that DBVerify and Validate Structure
indicate that file#100, block#99999 is corrupt.

Is there a way to check the value of the date field in index TABLE-
DATE
associated with this file/block?



Thanks,
QZ

Reply With Quote
  #5  
Old   
onedbguru
 
Posts: n/a

Default Re: Determine Date of Records Associated With Corrupt Block - 06-21-2011 , 09:19 PM



On Jun 15, 1:39*pm, "if_inves... (AT) yahoo (DOT) com"
<basis_consult... (AT) hotmail (DOT) com> wrote:
Quote:
Hi,

In a test server we have a corrupt data block in a table that is about
17GB in
size. DBVerify and validate structure both identified the same corrupt
block.
(File#f, block #y). Oracle is 10.2.0.4.

That table has a field named DATE, and there is an index on DATE.

Is there a way to use the index in order to identify the date(s)
of the data that was on the corrupt block?

For example, suppose that DBVerify and Validate Structure
indicate that file#100, block#99999 is corrupt.

Is there a way to check the value of the date field in index TABLE-
DATE
associated with this file/block?

Thanks,
QZ

If you have an RMAN backup of this database, you CAN restore just the
bad block.

Reply With Quote
  #6  
Old   
joel garry
 
Posts: n/a

Default Re: Determine Date of Records Associated With Corrupt Block - 06-22-2011 , 11:05 AM



On Jun 21, 7:19*pm, onedbguru <onedbg... (AT) yahoo (DOT) com> wrote:
Quote:
On Jun 15, 1:39*pm, "if_inves... (AT) yahoo (DOT) com"



basis_consult... (AT) hotmail (DOT) com> wrote:
Hi,

In a test server we have a corrupt data block in a table that is about
17GB in
size. DBVerify and validate structure both identified the same corrupt
block.
(File#f, block #y). Oracle is 10.2.0.4.

That table has a field named DATE, and there is an index on DATE.

Is there a way to use the index in order to identify the date(s)
of the data that was on the corrupt block?

For example, suppose that DBVerify and Validate Structure
indicate that file#100, block#99999 is corrupt.

Is there a way to check the value of the date field in index TABLE-
DATE
associated with this file/block?

Thanks,
QZ

If you have an RMAN backup of this database, you CAN restore just the
bad block.
.... with the backed up bad block :-O

jg
--
@home.com is bogus.
http://www.nytimes.com/2011/06/22/us/22infosys.html

Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.