RE: v$database_block_corruption not cleared

From: Mark W. Farnham <mwf_at_rsiz.com>
Date: Wed, 5 Jan 2022 12:22:30 -0500
Message-ID: <7e2001d80258$d26bd710$77438530$_at_rsiz.com>



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_at_freelists.org [mailto:oracle-l-bounce_at_freelists.org] On Behalf Of nilesh kumar Sent: Tuesday, January 04, 2022 11:17 PM To: nenad.noveljic_at_vontobel.com
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_at_vontobel.com> 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_at_gmail.com>
Sent: Freitag, 10. Dezember 2021 11:24
To: Noveljic Nenad <nenad.noveljic_at_vontobel.com> Cc: ORACLE-L <oracle-l_at_freelists.org> 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






--
http://www.freelists.org/webpage/oracle-l
Received on Wed Jan 05 2022 - 18:22:30 CET

Original text of this message