Recently, we had a computer crash which required us to press the power button of the PC off and back on again. After this happened, whenever we tried to log into the database whether it was using SQLPLUS, Oracle Forms, or PITSS.CON, we were receiving the following error:

image

This occurred any time we connected with any database user except for a sysdba user such as sys. We originally noticed the problem when logging into a Forms application. After logging into the database in Forms, the form would never load anything; only a blank screen appeared. ORA-01033 typically means that the database instance is either shutting down or starting up. In this case, the DB appears to be fully functional in Windows Services. However, when I tried to do a “shutdown abort” in the database, I received the error shown below when I tried to startup the database again:

image

To fix this, I applied the following steps:

  1. Make sure that the database and listener are up.
  2. Run the following in SQL:
    • startup mount; (if the mount has already been started, skip to the next part)
    • show parameter control_files;
    • select a.member,a.group#,b.status from v$logfile a,v$log b where a.group#=b.group# and b.status=’CURRENT’
  3. In the output, remember the full path to the redo log that is shown.
  4. Run in SQL:
    • shutdown abort;
  5. In the OS, make a backup of the control files that were shown when running “show parameter control_files’;”
  6. Log back into SQL using “ / as sysdba” to connect to an idle instance.
  7. Run the following in SQL:
    • startup mount;
    • recover database using backup controlfile until cancel;
  8. After running the command above, type in the full path to the redo log. After the full path to the log file is entered, press the Enter key.
  9. When complete, run in SQL:
    • alter database open resetlogs;

After applying the steps above, the database should function normally again.

Reference: Oracle Support note 1296264.1