Read beyond corrupted blocks
Hi all,
We are having production issues with data corruption in one table. We've tried a few things didnt work. We found out that a few records in the table is corrupted and we get invalid row-id and other different messages. We are just trying to see if we can save all the data in the table. Is it possible to read the records beyond a rowid (the corrupted rowid)??
Thanks a lot
Have you tried to export the table to see if it will export successfully ? If so, you can them truncate it and import it back.
Pl also see MOS Doc 28814.1 (Handling Oracle Block Corruptions in Oracle7/8/8i/9i/10g)
HTH
Srini
Similar Messages
-
ORACLE 8.0.5 on SuSE 5.3 and 6.0 - Corrupt Block
I do some heavy loading (Designer 2000) and I do get similar
errors on 2 different computer with mirrored disks -different
systems - on each one. So I'd like to exclude hardware problems.
it's experimental - so I do not run archives -
Designer on W95 crashes quite often but this should never lead
to corrupted data blocks.
Linux was hanging too - and disk-cache might not have been
written to disk ????? could this be a reason ???
Corrupt block relative dba: 0x01003aa8 file=4. blocknum=15016.
Fractured block found during buffer read
Data in bad block - type:6. format:2. rdba:0x01003aa8
last change scn:0x0000.00014914 seq:0x3 flg:0x00
consistancy value in tail 0x496b0605
check value in block header: 0x0, check value not calculated
spare1:0x0, spare2:0x0, spare2:0x0
would be happy to get some feedback
nullFerdinand Gassauer (guest) wrote:
: I do some heavy loading (Designer 2000) and I do get similar
: errors on 2 different computer with mirrored disks -different
: systems - on each one. So I'd like to exclude hardware
problems.
: it's experimental - so I do not run archives -
: Designer on W95 crashes quite often but this should never lead
: to corrupted data blocks.
: Linux was hanging too - and disk-cache might not have been
: written to disk ????? could this be a reason ???
: Corrupt block relative dba: 0x01003aa8 file=4. blocknum=15016.
: Fractured block found during buffer read
: Data in bad block - type:6. format:2. rdba:0x01003aa8
: last change scn:0x0000.00014914 seq:0x3 flg:0x00
: consistancy value in tail 0x496b0605
: check value in block header: 0x0, check value not calculated
: spare1:0x0, spare2:0x0, spare2:0x0
: would be happy to get some feedback
Please check first /var/log/messages for any linux errors. It is
likely that if linux crashes and cannot sync to disk that there
might be some corruption problems. For this reason lts of people
would like to see raw device support but apparently Linus is not
willing for some reason...
I assume some hardware relevant problems though
Marcus
null -
Recovery is repairing media corrupt block x of file x in standby alert log
Hi,
oracle version:8.1.7.0.0
os version :solaris 5.9
we have oracle 8i primary and standby database. i am getting erorr in alert log file:
Thu Aug 28 22:48:12 2008
Media Recovery Log /oratranslog/arch_1_1827391.arc
Thu Aug 28 22:50:42 2008
Media Recovery Log /oratranslog/arch_1_1827392.arc
bash-2.05$ tail -f alert_pindb.log
Recovery is repairing media corrupt block 991886 of file 179
Recovery is repairing media corrupt block 70257 of file 184
Recovery is repairing media corrupt block 70258 of file 184
Recovery is repairing media corrupt block 70259 of file 184
Recovery is repairing media corrupt block 70260 of file 184
Recovery is repairing media corrupt block 70261 of file 184
Thu Aug 28 22:48:12 2008
Media Recovery Log /oratranslog/arch_1_1827391.arc
Thu Aug 28 22:50:42 2008
Media Recovery Log /oratranslog/arch_1_1827392.arc
Recovery is repairing media corrupt block 500027 of file 181
Recovery is repairing media corrupt block 500028 of file 181
Recovery is repairing media corrupt block 500029 of file 181
Recovery is repairing media corrupt block 500030 of file 181
Recovery is repairing media corrupt block 500031 of file 181
Recovery is repairing media corrupt block 991837 of file 179
Recovery is repairing media corrupt block 991838 of file 179
how i can resolve this.
[pre]
Thanks
Prakash
Edited by: user612485 on Aug 28, 2008 10:53 AMDear satish kandi,
recently we have created index for one table with nologgign option, i think for that reason i am getting that error.
if i run dbv utility on the files which are shown in alert log file i am getting the following results.
bash-2.05$ dbv file=/oracle15/oradata/pindb/pinx055.dbf blocksize=4096
DBVERIFY: Release 8.1.7.0.0 - Production on Fri Aug 29 12:18:27 2008
(c) Copyright 2000 Oracle Corporation. All rights reserved.
DBVERIFY - Verification starting : FILE = /oracle15/oradata/pindb/pinx053.dbf
Block Checking: DBA = 751593895, Block Type =
Found block already marked corrupted
Block Checking: DBA = 751593896, Block Type =
.DBVERIFY - Verification complete
Total Pages Examined : 1048576
Total Pages Processed (Data) : 0
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 1036952
Total Pages Failing (Index): 0
Total Pages Processed (Other): 7342
Total Pages Empty : 4282
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
bash-2.05$ dbv file=/oracle15/oradata/pindb/pinx053.dbf blocksize=4096
DBVERIFY: Release 8.1.7.0.0 - Production on Fri Aug 29 12:23:12 2008
(c) Copyright 2000 Oracle Corporation. All rights reserved.
DBVERIFY - Verification starting : FILE = /oracle15/oradata/pindb/pinx054.dbf
Block Checking: DBA = 759492966, Block Type =
Found block already marked corrupted
Block Checking: DBA = 759492967, Block Type =
Found block already marked corrupted
Block Checking: DBA = 759492968, Block Type =
.DBVERIFY - Verification complete
Total Pages Examined : 1048576
Total Pages Processed (Data) : 0
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 585068
Total Pages Failing (Index): 0
Total Pages Processed (Other): 8709
Total Pages Empty : 454799
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
bash-2.05$ dbv file=/oracle15/oradata/pindb/pinx054.dbf blocksize=4096
DBVERIFY: Release 8.1.7.0.0 - Production on Fri Aug 29 12:32:28 2008
(c) Copyright 2000 Oracle Corporation. All rights reserved.
DBVERIFY - Verification starting : FILE = /oracle15/oradata/pindb/pinx055.dbf
Block Checking: DBA = 771822208, Block Type =
Found block already marked corrupted
Block Checking: DBA = 771822209, Block Type =
Found block already marked corrupted
Block Checking: DBA = 771822210, Block Type =
.DBVERIFY - Verification complete
Total Pages Examined : 1048576
Total Pages Processed (Data) : 0
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 157125
Total Pages Failing (Index): 0
Total Pages Processed (Other): 4203
Total Pages Empty : 887248
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
My doubts are :
1.if i drop the index and recreate the index with logging option will this error won't repeat in alert log file
2.in future if i activate the standby database will database is going to open without any error.
Thanks
Prakash
. -
Corrupt block relative dba: 0x0041470c
Corrupt block relative dba: 0x0041470c (file 1, block 83724)
Fractured block found during buffer read
Data in bad block:
type: 6 format: 2 rdba: 0x0041470c
last change scn: 0x0009.90b485ad seq: 0x1 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x00000000
check value in block header: 0x3092
computed block checksum: 0x19de
Wed Oct 03 09:58:32 GMT-4 2012
Reread of rdba: 0x0041470c (file 1, block 83724) found same corrupted data
Wed Oct 03 09:58:32 GMT-4 2012
Errors in file /opt/oracle/admin/IXP/bdump/ixp_smon_19661.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-08103: object no longer exists962800 wrote:
Corrupt block relative dba: 0x0041470c (file 1, block 83724)
Fractured block found during buffer read
Data in bad block:
type: 6 format: 2 rdba: 0x0041470c
last change scn: 0x0009.90b485ad seq: 0x1 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x00000000
check value in block header: 0x3092
computed block checksum: 0x19de
Wed Oct 03 09:58:32 GMT-4 2012
Reread of rdba: 0x0041470c (file 1, block 83724) found same corrupted data
Wed Oct 03 09:58:32 GMT-4 2012
Errors in file /opt/oracle/admin/IXP/bdump/ixp_smon_19661.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-08103: object no longer exists
Its not a corrupted block but a fractured block and also the object is not there anymore. So there is nothing that you are supposed to do.
Aman.... -
Hi
1-)
If the database in noarchivelog mode I cannot issue:
Rman>
BACKUP VALIDATE DATABASE;
Since this command just checks if there is any corrupted blocks, and doesnt take backup, why it wants archivelog mode ?
2-) If I want to search corrupted blocks is there any diffrence among using
RMAN> BACKUP VALIDATE DATABASE;
or
dverify
or
analyze ... validate structure ;
P.S:noarchivelog mode.I read the link
The thing is I dont want to specify one by one all datafiles.
I want to scan all datafiles automatically? What if I have more than 700 datafiles?
Is that possible with dbv? -
Corrupted blocks are shown after runnıng dbv
but I cant see them from the
V$backup_corruption
v$database_block_corruption;
why?Was dbv supposed to mark the block corrupt somewhere?
The V$DATABASE_BLOCK_CORRUPTION view indicates which blocks in a datafile were marked corrupt since the most recent BACKUP or BACKUP VALIDATE command was run. -
Corrupt block error + valid data found ???
Hi,
I am getting a peculiar block corruption error in my production database (9.2.0.8).
It also says "valid data found". I am able to analyze the suspect table without any reported issues. Can any one please suggest?
Details from Alertlog below:-
Corrupt block relative dba: 0x01463cbf (file 5, block 408767)
Bad header found during user buffer read
Data in bad block -
type: 50 format: 0 rdba: 0x3a383020
last change scn: 0x0338.303a3630 seq: 0xc2 flg: 0x38
consistency value in tail: 0x36302036
check value in block header: 0x3c27, block checksum disabled
spare1: 0x30, spare2: 0x36, spare3: 0x1502
Reread of rdba: 0x01463cbf (file 5, block 408767) found valid data
Hex dump of Absolute File 5, Block 408768 in trace file d:\oracle\admin\fm\udump\fm_ora_5236.trc
---------------------------------------------------------------------------------------------Hi,
May be this will help
Data block corruption…..
Regards
Jafar -
Hi Gurus,
My alert log was showing a block corrupt and i repaired it with dbms utility. After this oracle starts generating a trace file in udump folder every minute which shows follwing error.
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
*** 2010-04-30 19:52:51.203
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
I don't so many trace files to be gerated . Can i do something .
Please help me.Vivek Agarwal wrote:
Hi Gurus,
My alert log was showing a block corrupt and i repaired it with dbms utility. After this oracle starts generating a trace file in udump folder every minute which shows follwing error.
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
*** 2010-04-30 19:52:51.203
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
table scan: segment: file# 19 block# 67
skipping corrupt block file# 19 block# 79161
I don't so many trace files to be gerated . Can i do something .
Please help me.Dear Vivek. If you have used DBMS_REPAIR package, it means that you've marked those blocks corrupted and ORacle will bypass those blocks in I/O
Why you haven't used RMAN Block Media Recovery? You can watch my video tutorial on this: http://kamranagayev.wordpress.com/2010/03/18/rman-video-tutorial-series-performing-block-media-recovery-with-rman/
(And please don't tell me that you haven't taken RMAN backup if it's not a production database)
It's just a informatino written to the trace files that Oracle bypasses those data blocks
Read the following article :
http://www.askthegerman.com/archives/107
My Oracle Video Tutorials - http://kamranagayev.wordpress.com/oracle-video-tutorials/ -
Need to find the corrupted blocks.
Hi,
I am having blocks corruption(nologging) for the 11g database. Want to find the whether corrupted blocks are from indexes or from specific tables...Thanx..
I am firing below query.
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#; -
Help Fix 26473 Corrupt blocks in system09.dbf
How to Format Corrupted Block Not Part of Any Segment [ID 336133.1]
I'm following the above doc to fix 26K corrupt blocks in system09.dbf
in Step 7 of the Doc it says:
+" First find the *extent size* by querying dba_free_space "+
+65536 = If its 64 K+
+1048576 = 1M+
I'm getting 891559936 with the following query:
SQL> Select bytes from dba_free_space where file_id= 352 and 192128 between block_id and block_id + blocks -1;
BYTES
891559936
What will be my extent size?
I'm lost on how to proceed with the following steps:
BEGIN
for i in 1..1000000 loop
EXECUTE IMMEDIATE 'alter table apps.s allocate extent (DATAFILE '||'''/oracle/KPSO/db/apps_st/data/system09.dbf''' ||'SIZE 64K) ';
end loop;
end ;
+/+
Note you need to change accordingly the size (1M ,64K or 128k) and the value of for loop
can be changed as per requirement.
Thanks.
-Joey->
currently doing another round of steps 5-9 to see if it will wipe out all the corrupt blocks.Just want to give an update:
Datafile was completely free of corruption after 2 more passes ..
$ dbv file=/oracle/KPSO/db/apps_st/data/system09.dbf blocksize=8192
DBVERIFY: Release 11.1.0.7.0 - Production on Thu Mar 22 05:08:56 2012
Copyright (c) 1982, 2007, Oracle. All rights reserved.
DBVERIFY - Verification starting : FILE = /oracle/KPSO/db/apps_st/data/system09.dbf
DBVERIFY - Verification complete
Total Pages Examined : 192128
Total Pages Processed (Data) : 160979
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 26455
Total Pages Failing (Index): 0
Total Pages Processed (Other): 2124
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 2570
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 3757005752 (1388.3757005752) -
Corrupt block relative dba: in alert log
hi,
In our recovery database,I've found following error in alert log.
Thu Mar 27 07:05:57 2008
Hex dump of (file 3, block 30826) in trace file /u01/app/oracle/admin/catdb/bdump/catdb_m000_21795.trc
Corrupt block relative dba: 0x00c0786a (file 3, block 30826)
Bad check value found during buffer read
Data in bad block:
type: 6 format: 2 rdba: 0x00c0786a
last change scn: 0x0000.0013ed4d seq: 0x1 flg: 0x06
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0xed4d0601
check value in block header: 0x937c
computed block checksum: 0x8000
Reread of rdba: 0x00c0786a (file 3, block 30826) found same corrupted data
Thu Mar 27 07:05:59 2008
Corrupt Block Found
TSN = 2, TSNAME = SYSAUX
RFN = 3, BLK = 30826, RDBA = 12613738
OBJN = 8964, OBJD = 8964, OBJECT = WRH$_ENQUEUE_STAT, SUBOBJECT =
SEGMENT OWNER = SYS, SEGMENT TYPE = Table Segment
Now, how solve this error?
Thanks in advance.
LeoRefer to metalink Note:77587.1. You may need to do further sanity block checking by placing the following parameters in the database instance init.ora parameter file:
db_block_checking=true
db_block_checksum=true
dbblock_cache_protect= true
Consult Oracle support before changing hidden parameters. -
Hi,
in 10g R2, any query to see all corrupted blocks and their owners ?
Thank you.Hi,
thanks to all. But I'm confused :
SQL> select count(*) FROM sometable;
select count(*) FROM sometable
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 3, block # 27080)
ORA-01110: data file 3: 'D:\BASE\TEST\DATA\SYSAUX01.DBF'
SQL> select file#, block# from V$DATABASE_BLOCK_CORRUPTION;
no rows selected
dbv file='D:\BASE\TEST\DATA\SYSAUX01.DBF' blocksize=8192
DBVERIFY: Release 10.2.0.1.0 - Production on Sun Jul 5 17:20:04 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
DBVERIFY - Verification starting : FILE = D:\BASE\TEST\DATA\SYSAUX01.DBF
DBV-00200: Block, dba 12609992, already marked corrupted
DBV-00200: Block, dba 12610792, already marked corrupted
DBV-00200: Block, dba 12611016, already marked corrupted
DBV-00200: Block, dba 12612680, already marked corruptedWhy no rows selected from V$DATABASE_BLOCK_CORRUPTION ??
Thank for any explanation. -
Finding Total Number Of Corrupted Blocks
Hello,
I just browsed several websites including RMAN documentation and information on how to identifiy corrupted blocks.
I´m in the middle of reorganizing production backups and their restore tests by duplication, which should (in my opinion) be followed by an analysis for corrupted blocks.
I found RMAN command BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL; to fit my needs. Recently I read the validate command only writes NEWLY found corrupted blocks to View V$DATABASE_BLOCK_CORRUPTION.
1. How do I check the WHOLE database for its TOTAL physical and logical corrupted blocks?
2.Under which circumstances is it NOT necesssary to check the database after the restore? In other words is there a way to ensure the backup cancels immediately when finding a corrupted block?
3. Is it necessary to set maxcorrupt to "0" during the Backup to get it cancelled for every corrupted block found?
4. What does dbv in contrast to backup validation?
Please be so kind to post me some short hints.
Regards
DominikHi,
thanks for your feedback again.
Yesterday I "accidently" faced the situation to work with a block corrupted database during a restore test.
So I had the chance to run both backup validate and dbv against its corrupted files.
dbv worked fine, recognized all corrupted blocks and reported them in its output.
Disappointingly backup validate neither reportted any corrupt withtin the whole database (there are several datafiles with corrupted blocks), nor posted them to V$DATABASE_BLOCK_CORRUPTION. There I could only find a hand full, but not all of them.
I´m very consufed now, what would I need backup validate for anymore??? :-/
I built myself a script to check the whole database with dbverify. Regarding production databases we cannot live with uncertainties like that
Regards
Dominik -
Corrupt blocks in the LOB segment 11.2.0.2
Hello,
at a dbexport we found corrupted blocks in a LOB-Segment. Then we start rman and do a backup validate check logical database, nothing, rman didn't found any corruption. meanwhile we have repaired the LOB-Segment with restore, now all is ok. But we are confused about this situation, why did rman not found the corruption ? we are making backups with rman (with parameter check logical) and we think rman found logical data corruption. should we now make daily an export to dev_null that we found any corruption.It would be very nice if someone had an answer for us.
thanks very muchAs far as I know rman validate backup only check for corrupted blocks among database blocks which are used at least once(i.e. used, or free-but at least once used before). For not used blocks RMAN will not report any block corruption.
The alternate approach could be using dbv utility(Database verification utility) -
How to identify corrupted block in Particular tablespace?
Hi,
i am getting lot of block corruption error from particular tablesapce datafile. i couldn't able to use DBVerify utility .bcz datafiles not created using .dbf format.
how to idetify corrupted blocks?Detecting and Repairing Data Block Corruption
http://download.oracle.com/docs/cd/B10501_01/server.920/a96521/repair.htm(9i)
http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/repair.htm(10g)
Find more information “Handling Oracle Block Corruptions in Oracle7/8/8i/9i/10g” Metalink Note: 28814.1.
http://dbataj.blogspot.com/2008/04/oracle-database-block-corruption.html
http://sysdba.wordpress.com/2006/04/05/how-to-check-for-and-repair-block-corruption-with-rman-in-oracle-9i-and-oracle-10g/
Maybe you are looking for
-
Nokia C65 does not show me which Internet connecti...
I have a Nokia C65, and, to this day, I am not sure what operating system does it use, how do I check? What worries more than this is that I have configured different connections including a WAP connection - provided by my telecommunications operat
-
Embed Fonts in mobile IconItemRenderer
Hi everybody, I developed a mobile app whose lists use a custom item render extended from the IconItemRenderer component. Everything works fine except for the fonts. It does not display the right font, which is embedded via CSS. Here is what the comp
-
Retrieving content via CM tags
This is a newbie question, but I could not find the answer in any documentation, and I've been stuck on this for a while! In retrieving content using content management tags (WL8.1 SP5), do my JSPs have to be in the same WL application as the Portal
-
Repport conditional formatting
Hi, We used BIP 10.1.3.4.2. We want to change the size font and other parameters conditioning from data in XML file; We used a font reference in our template : Name :xdo-font.XMLPScript.normal.normal Type :Text Value :truetype./tmp/fonts/
-
No Suitable Driver: getConnection
Hi, I was using NetBeans for development and i had no problems, but i just recently started using Homesite for my editor and now when i run my program i get the following error: java.sql.SQLException: No suitable driver at java.sql.DriverManager