ORA-01578 and ORA-01110 Errors

Currently i am facing ORA-01110 and ORA-01578 error problems in my database. The log file showing below error:

Class : AdsArchive
java.sql.SQLException: ORA-01578: ORACLE data block corrupted (file # 10, block # 90)
ORA-01110: data file 10: 'E:\ORACLE\ORADATA\SFMS\SFMS_BRACH\SFMS_ARCH_NDX1.DBF'

      at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
      at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
      at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:582)
      at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1983)
      at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1141)
      at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2149)
      at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2032)
      at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2894)
      at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:608)
      at sfmsbr.archiving.AdsArchive.archive_ADS(AdsArchive.java:40)
      at sfmsbr.archiving.MhbArchive.archive_MHB(MhbArchive.java:106)
      at sfmsbr.archiving.ArchiveProcess.archive_Branch_Tbls(ArchiveProcess.java:243)
      at sfmsbr.archiving.ArchiveProcess.arcMain(ArchiveProcess.java:159)
      at sfmsbr.archiving.ArchiveProcess.run(ArchiveProcess.java:46)
      at sfmsbr.archiving.ArchiveProcess.<init>(ArchiveProcess.java:39)
      at sfmsbr.reports.Scheduler.main(Scheduler.java:297)
---------------------------------------------------------

For error number ORA-01578:
I have executed dbv/oracle built in repair packages and i have not found any corrupted blocks in database.

I have analyzed all tables/indexes in particular block and i have not found in corrupted objects.

Please let me know how to resolve my problem
srinivas_ganamurAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

johnsoneSenior Oracle DBACommented:
The first thing that I would do is to identify the object involved.

SELECT * FROM DBA_EXTENTS
WHERE FILE_ID = 10 AND 90 BETWEEN BLOCK_ID AND BLOCK_ID + BLOCKS - 1;

Based on the name of the file, I believe you are going to find an index.  Drop and recreate the index, then run statistics on the table.  See if you still get the error.  If there is any corruption, recreating the index should fix that.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
k_murli_krishnaCommented:
0
slightwv (䄆 Netminder) Commented:
>>EE is best professional IT forum, ITTB is best free IT forum

EE is free.
0
The Ultimate Tool Kit for Technolgy Solution Provi

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy for valuable how-to assets including sample agreements, checklists, flowcharts, and more!

srinivas_ganamurAuthor Commented:
Hi Johnsone,

I have already executed your query, it returns no rows

SELECT * FROM DBA_EXTENTS
WHERE FILE_ID = 10 AND 90 BETWEEN BLOCK_ID AND BLOCK_ID + BLOCKS - 1;

Output:
no rows selected.

i have also tried FIX_CORRUPT_BLOCKS / DBMS_REPAIR.CHECK_OBJECT...no luck..still same error is generating log file
0
srinivas_ganamurAuthor Commented:
i have also tried below querys:

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

output:
no rows selected.

select *
from dba_free_space
where file_id = 10 and
90 between block_id and block_id + blocks - 1

Output:
no rows selected
0
POracleCommented:
try this

rman>backup validate datafile 10

then execute this query to find out corrupted block details
sql>select * from v$database_block_corruption


0
srinivas_ganamurAuthor Commented:
currently we have not configured RMAN
0
POracleCommented:
Ok,

Rman not require any configuration. it is tool like exp/imp
Any way,
I am taking this statement as you have no backup taken with Rman.

Do you have backup of corrupted file (i.e. SFMS_ARCH_NDX1.DBF). And if your database is configured in Archivelog mode then we can restore a GOOD backup of corrupted file and then can recover it.


0
srinivas_ganamurAuthor Commented:
--
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Oracle Database

From novice to tech pro — start learning today.