Disk Arrays
cancel
Showing results for 
Search instead for 
Did you mean: 

AutoRaid 12H restore data corruption

Mahesu_2
Occasional Contributor

AutoRaid 12H restore data corruption

Hi all,

I have AutoRaid 12H. recently we have upgraded the disks, and we removed 2 of the old LUNs and recreated them with new size, then we restored the data.

No error messaege displayed during the restore. we used tar command for restore.

Our Oracle started and worked for 3hrs,afte that one table gave an error that " corrupted block". The software vendor says that it is a hard ware problem. But physically I am able to copy the same data file (the datafile where the TABLE exists) to tape or to other disk. The same data file has some other TABLES, they are also working fine. Even the same corrupted TABLE works fine when we acces other blocks.

Can somebody help me out to find out why this has happened?

During the restore, The array was rebuilding. Is this is the cause for the same?

But the same array was working fine about two days back with full load. (During this time also the array was rebuilding)


Thanks

Mahesu
6 REPLIES
U.SivaKumar_2
Honored Contributor

Re: AutoRaid 12H restore data corruption

Hi mahesu,

reference:

Error ORA-1578 - Block Corruption
Oracle posts the following error when it detects inconsistencies in data read from the disk:

01578, 00000, "ORACLE data block corrupted (file # %s, block # %s)"

The error message contains the absolute file number (AFN) and the block number (BN). The following statement helps you to determine what objects where affected:

select owner, segment_name, segment_type, segment_name
from dba_extents
where file_id =
and between block_id and block_id + blocks - 1;

Basically, the type of the affected object will determine your recovery procedure. Note: the ultimate solution is to restore and recover the entire database.

Nevertheless, if the corrupted block belongs to the Data Dictionary object or to a rollback segment, contact Oracle Support Center.

Otherwise you may consider trying the following:
Table - recover it from the latest export (if you have it).


Index - if its base table is not corrupted, drop and recreate the index.
To prevent the unexpected occurance of this error you may use the following script: check_corruption.sql This script checks the entire database and should not return any errors. For example, it makes sense to use it before upgrading your database.

If you want to check only one particular object you may use the following command:

analyze table_name/index_name/cluster_name ... validate structure;

You may also consider using the DBVERIFY utility.

regards,
U.SivaKumar

Innovations are made when conventions are broken
U.SivaKumar_2
Honored Contributor

Re: AutoRaid 12H restore data corruption


Hi,

Ref:
An Oracle database block can become corrupt for various reasons, such as

Bad hardware

Operating system bugs

I/O or caching problems

Unsupported disk repair utilities running

Memory problems

Oracle bugs

regards,
U.SivaKumar



Innovations are made when conventions are broken
U.SivaKumar_2
Honored Contributor

Re: AutoRaid 12H restore data corruption

Hi,

Ref:

ORA-1578: ORACLE data block corrupted

Q:

Please let me know what to do about this error. It occurs every time we gather statistics.
ORA-01578: ORACLE data block corrupted (file # 80, block # 2843)
ORA-01110: data file 5: '/oracle/PRD/saprawe4c/pool2d.data03'


First work out which database segment holds that block ...
select
segment_name,
segment_type
from
dba_extents
where
file_id = 80 and
2843 between block_id and block_id + blocks - 1
/

A:

If it is an index, you can drop it and recreate it. If it is a table, you've lost the data in that block. You may be able to get it back from backups. You may be able to derive it from the indexes. You may be able to work it out from a hex block dump. Oracle have a tool to edit and fix corrupted blocks (BBED). You may be happy to just salvage the rest of the data from the table. As you can see, there are lots of options, and it is non-trivial.


regards,
U.SivaKumar

Innovations are made when conventions are broken
U.SivaKumar_2
Honored Contributor

Re: AutoRaid 12H restore data corruption

Hi,

Ref:

ORA-1578: ORACLE data block corrupted

Q:

Please let me know what to do about this error. It occurs every time we gather statistics.
ORA-01578: ORACLE data block corrupted (file # 80, block # 2843)
ORA-01110: data file 5: '/oracle/PRD/saprawe4c/pool2d.data03'

A:

First work out which database segment holds that block ...
select
segment_name,
segment_type
from
dba_extents
where
file_id = 80 and
2843 between block_id and block_id + blocks - 1
/



If it is an index, you can drop it and recreate it. If it is a table, you've lost the data in that block. You may be able to get it back from backups. You may be able to derive it from the indexes. You may be able to work it out from a hex block dump. Oracle have a tool to edit and fix corrupted blocks (BBED). You may be happy to just salvage the rest of the data from the table. As you can see, there are lots of options, and it is non-trivial.


regards,
U.SivaKumar

Innovations are made when conventions are broken
Mahesu_2
Occasional Contributor

Re: AutoRaid 12H restore data corruption

Thanks Siva,

The problem was solved by Our Database team. I want to know how this has happened, so that I can avoid such faiures in future.

regards,
mahesu
Steve Labar
Valued Contributor

Re: AutoRaid 12H restore data corruption

I always feel safest changing data stored on the 12H after rebuilds are complete. It may take longer to perform your systems maintenance, but it takes less time than fixing any problems that come up later.

Steve