RE: v$database_block_corruption not cleared

  • From: "Mark W. Farnham" <mwf@xxxxxxxx>
  • To: <nileshkum@xxxxxxxxx>, <nenad.noveljic@xxxxxxxxxxxx>
  • Date: Wed, 5 Jan 2022 12:22:30 -0500

So if it is inconvenient to get rid of that file any time soon you will want to 
create dummy tables until one takes that block. Small tables created in a “do 
another?” loop and checking for the bad blocks to have been used in another 
connection.

 

Then you can drop all the dummies except the one(s) with the bad block(s).

 

Rename the dummies with bad blocks something like BadBlock_ff_ssssss_eeeeee

 

where ff is the file number, ssssss is the start block, and eeeee is the end 
block.

 

Suggest that the table creator/owner be a dba_only_maint account, but not 
system or sys.

 

Then clear out the files and drop the tablespace when convenient or leave the 
bad blocks pinned by the carefully chosen table name to never drop or move 
forever.

 

When you could arbitrarily allocate extents this was easier, but we lost that 
in the enhancements to uniform and system geometric sizes.

 

Good luck.

 

mwf

 

From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On ;
Behalf Of nilesh kumar
Sent: Tuesday, January 04, 2022 11:17 PM
To: nenad.noveljic@xxxxxxxxxxxx
Cc: Leng; ORACLE-L
Subject: Re: v$database_block_corruption not cleared

 

Hello Nenad,

 

I had faced a similar issue on the Windows platform, the corrupted block was 
not getting cleared.

When the Platform team  reorg the disk, it got removed permanently.

 

Thanks

Nilesh

 

On Fri, Dec 10, 2021 at 4:52 PM Noveljic Nenad <nenad.noveljic@xxxxxxxxxxxx> 
wrote:

Hi Leng,

 

Thank you for the article.

 

The block was returned to the free list:

 

set lines 200 pages 10000

col segment_name format a30

 

SELECT e.owner, e.segment_type, e.segment_name, e.partition_name, c.file#

, greatest(e.block_id, c.block#) corr_start_block#

, least(e.block_id+e.blocks-1, c.block#+c.blocks-1) corr_end_block#

, least(e.block_id+e.blocks-1, c.block#+c.blocks-1)

- greatest(e.block_id, c.block#) + 1 blocks_corrupted

, null description

FROM dba_extents e, v$database_block_corruption c

WHERE e.file_id = c.file#

AND e.block_id <= c.block# + c.blocks - 1

AND e.block_id + e.blocks - 1 >= c.block#

UNION

SELECT s.owner, s.segment_type, s.segment_name, s.partition_name, c.file#

, header_block corr_start_block#

, header_block corr_end_block#

, 1 blocks_corrupted

, 'Segment Header' description

FROM dba_segments s, v$database_block_corruption c

WHERE s.header_file = c.file#

AND s.header_block between c.block# and c.block# + c.blocks - 1

UNION

SELECT null owner, null segment_type, null segment_name, null partition_name, 
c.file#

, greatest(f.block_id, c.block#) corr_start_block#

, least(f.block_id+f.blocks-1, c.block#+c.blocks-1) corr_end_block#

, least(f.block_id+f.blocks-1, c.block#+c.blocks-1)

- greatest(f.block_id, c.block#) + 1 blocks_corrupted

, 'Free Block' description

FROM dba_free_space f, v$database_block_corruption c

WHERE f.file_id = c.file#

AND f.block_id <= c.block# + c.blocks - 1

AND f.block_id + f.blocks - 1 >= c.block#

ORDER BY file#, corr_start_block#;

 

OWNER                                                                           
                                                 SEGMENT_TYPE       SEGMENT_NAME

--------------------------------------------------------------------------------------------------------------------------------
 ------------------ ------------------------------

PARTITION_NAME                                                                  
                                                      FILE# CORR_START_BLOCK# 
CORR_END_BLOCK# BLOCKS_CORRUPTED

--------------------------------------------------------------------------------------------------------------------------------
 ---------- ----------------- --------------- ----------------

DESCRIPTION

--------------

 

                                                                                
                                                          7            694199   
       694199                1

Free Block

 

 

                                                                                
                                                          8            174445   
       174445                1

Free Block

 

Best regards,

 

Nenad

 

From: Leng <lkaing@xxxxxxxxx> 
Sent: Freitag, 10. Dezember 2021 11:24
To: Noveljic Nenad <nenad.noveljic@xxxxxxxxxxxx>
Cc: ORACLE-L <oracle-l@xxxxxxxxxxxxx>
Subject: Re: v$database_block_corruption not cleared

 

*** E-Mail from outside Vontobel: Do not click on links or open attachments 
unless you know the content is safe. ***

Hi Nenad, 

 

The corrupted block is returned to the free list to be reused. When a block is 
reused it is reformatted and that’s when the corruption is finally cleared.

 

If you want to format it right away then you’ll need to try and create an 
object in the particular datafile and hope it picks up the corrupted block.

 

See 336133.1

 

Cheers, 

Leng

 

 

____________________________________________________

Please consider the environment before printing this e-mail.

Bitte denken Sie an die Umwelt, bevor Sie dieses E-Mail drucken.


Important Notice

This message is intended only for the individual named. It may contain 
confidential or privileged information. If you are not the named addressee you 
should in particular not disseminate, distribute, modify or copy this e-mail. 
Please notify the sender immediately by e-mail, if you have received this 
message by mistake and delete it from your system.
Without prejudice to any contractual agreements between you and us which shall 
prevail in any case, we take it as your authorization to correspond with you by 
e-mail if you send us messages by e-mail. However, we reserve the right not to 
execute orders and instructions transmitted by e-mail at any time and without 
further explanation.
E-mail transmission may not be secure or error-free as information could be 
intercepted, corrupted, lost, destroyed, arrive late or incomplete. Also 
processing of incoming e-mails cannot be guaranteed. All liability of Vontobel 
Holding Ltd. and any of its affiliates (hereinafter collectively referred to as 
"Vontobel Group") for any damages resulting from e-mail use is excluded. You 
are advised that urgent and time sensitive messages should not be sent by 
e-mail and if verification is required please request a printed version.
Please note that all e-mail communications to and from the Vontobel Group are 
subject to electronic storage and review by Vontobel Group. Unless stated to 
the contrary and without prejudice to any contractual agreements between you 
and Vontobel Group which shall prevail in any case, e-mail-communication is for 
informational purposes only and is not intended as an offer or solicitation for 
the purchase or sale of any financial instrument or as an official confirmation 
of any transaction.
The legal basis for the processing of your personal data is the legitimate 
interest to develop a commercial relationship with you, as well as your consent 
to forward you commercial communications. You can exercise, at any time and 
under the terms established under current regulation, your rights. If you 
prefer not to receive any further communications, please contact your client 
relationship manager if you are a client of Vontobel Group or notify the 
sender. Please note for an exact reference to the affected group entity the 
corporate e-mail signature. For further information about data privacy at 
Vontobel Group please consult www.vontobel.com.




 

-- 

Thanks & Regards
Nilesh
Oracle DBA (sqlplus "/as sysdba" is my world)

"As our circle of knowledge expands, so does the circumference of darkness 
surrounding it."--Einstein
"All men die, few men ever truly live" -- Braveheart
"You can get help from teachers, but you are going to have to learn a lot by 
yourself, sitting alone in a room." --Dr. Seuss
"Know me for what I do and for not what I am. Judge me for what I can do and 
not for what I have done."-Unknown
"Don't walk in front of me, I may not follow. Don't walk behind me, I may not 
lead. Just walk beside me and be my friend."- Albert Camus
"Never argue with an idiot. They drag you down to their level and then beat you 
with experience." - Unknown

Other related posts: