ORA-16038, ORA-19809, ORA-16014, ORA-00312 after server crash. Oracle 10g on Windows 2000 server. Clueless noob at the wheel.

I am a total newbie with Oracle. The solutions I've found for this problem are mostly written for the clueful. Telling me to connect the foo to the bar and everything will be fine doesn't get me there. I need complete idiot instructions on how to undo what I have apparently done. Oracle 10g on Windows 2000 Advanced Server. Server meltdown. Now I'm getting:

ORA-16038: log1 sequence #669 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 1 thread 1: 'E:\Oracle\Redologs\Redo1.log'

ORA-16014: log1 sequence #669 not archived. No available destinations
ORA-00312: online log 1 thread 1: 'E:\Oracle\Redologs\Redo1.log'

When the meltdown happened I was in Enterprise Manager trying to redirect some redo and archive files to a new hard drive that was added to my server. This happened prior to me reading about the spfile and how important it is to back it up. It evaporated. I can start Oracle from SQL*Plus using the pfile. I generated a new spfile from the pfile, but nothing I've tried has cleared these errors so Oracle will not start from the spfile. I tried increasing the recovery file limit, but apparently did it wrong because the error persists. I'm not sure what "No available destinations" is trying to tell me.

Thank you experts!

P.S. One step closer. I finally managed to start from the spfile, but the errors remain.
Who is Participating?
Mark GeerlingsConnect With a Mentor Database AdministratorCommented:
I've never seen the ORA-19809 error before, so I can't help you on that one.  The other errors all seem to be related to a problem archiving (copying) the on-line redo log to the archived redo log destination.  The most common cause of this is a "disk full" condition, but since your spfile was lost, it may simply be the fact that you have no "log_archive_dest" (or: log_archive_dest_N) parameter specified.  Try this:
alter system set log_archive_dest_1 = '[a valid disk and directory]' scope=both;

something like this:
alter system set log_archive_dest_1 = 'C:\temp' scope=both;

(I'm not recommending that you use "C:\temp" for this!  It's just an example!)

Make sure that the directory you specify: is valid; has plenty of room; and that the security on it allows your database to write to it.
or simply try to type in and see how it goes:

alter database clear unarchived logfile group 1;

make user you specify the right destination for the "log_archive_dest" paramter.
bzackAuthor Commented:
I solved this myself, but I'm giving the points to markgeer because he answered it exactly the way I asked for it to be answered. I said I was a clueless idiot so please treat me as such, and he did. He even did it politely. :-)

Proof of my idiocy:
For starters, I was using the wrong pfile, which is why my create spfile from pfile was not working right. Once I got Oracle to recognize my newly created spfile I was able to poke around in Enterprise Manager. Initially I had set my log_archive_dest paths to identical paths on E: and F: drives. Once I did that again in EM, the errors stopped. The new spfile is now backed up everywhere!

Thanks to everyone who contributed. I know more questions will be coming because I'm having fun with this and I'm sure I'll be trashing this database again before long.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.