How To: Start Oracle 10g Server when a .dbf file is corrupt or missing
Categories: Technical

I recently had an 800GB Seagate FreeAgent drive crash on me using CentOS 4.0 and Oracle 10g. Until I saw this post I thought the problem was the NTFS-3G driver CentOS uses. I was unable to mount and format the drive under Linux so I had to plug it into a Windows XP box and then have Linux talk NTFS to the device. The tablespace files were on the drive when it crashed. I had a problem starting Oracle after that, it kept complaining about the corrupt *.dbf files. Here are the steps I took to correct this:

  • Start sqlplus: $>sqlplus username/password
  • Start sql server: $>startup nomount
  • Issue the following for each corrupt or missing *.dbf file: $>ALTER DATABASE DATAFILE datafile_name_and_path OFFLINE DROP
  • Shutdown the database server: $>shutdown
  • Start the database server: $>startup
  • drop the tablespaces whose datafiles are corrupt/missing: $>DROP TABLESPACE tablespace_name INCLUDING CONTENTS

I would not attempt this if you want to recover the data from the files. In that case your best bet is to restore the database from a backup.

Categories: Technical - Tags: , ,

Leave a Reply