Fixed: Oracle not started-ORA-16038, ORA-19809, ORA-00312 error

When you try to start your database and it fails with the error code ORA-16038, ORA-19809, ORA-00312. You can resolve this error with the help of this tutorial.

Error Message:

ORA-16038: log 3 sequence# 572 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 3 thread 1: '/oradata2/data1/dbase/redo03.log'

Root Cause:

SQL> startup

ORACLE instance started.

Total System Global Area 178792260 bytes
Fixed Size 2116288 bytes
Variable Size 218440552 bytes
Database Buffers 42943340 bytes
Redo Buffers 6469580 bytes
Database mounted.
ORA-16038: log 3 sequence# 572 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 3 thread 1: '/oradata2/data1/dbase/redo03.log'

Here you can see the database is in mount stage and fails with same error ORA-16038, ORA-19809, ORA-00312. If you try it again it will give you the same error.

SQL> alter database open;

alter database open
*
ERROR at line 1:
ORA-16014: log 3 sequence# 572 not archived, no available destinations
ORA-00312: online log 3 thread 1: '/oradata2/data1/dbase/redo03.log'

Here oracle attempted to archive the online log-3 but could not archive the online log in the available archived log destination. If archive log destination is full then you can increase some space or delete old archive logs files.

Resolution:

Method-1:

First you need to increase space of db_recovery_file_dest_size as archive destination is full.

SQL> archive log list

Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 582
Next log sequence to archive 582
Current log sequence 590So archived log destination is DB_RECOVERY_FILE_DEST.

SQL> show parameter db_recover

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /oradata1/flash_recovery_area
db_recovery_file_dest_size big integer 10G
SQL> alter system set db_recovery_file_dest_size=30G;
System altered.

SQL> alter database open;
Database altered.

Method-2:

If you have not enough space in your hard disk and took the latest backup of your database along with archive log files then you can issue following command.

$rman target /
RMAN>DELETE ARCHIVELOG UNTIL TIME 'SYSDATE-2';

C:\> sqlplus /nolog

SQL>conn sys/password@host as sysdba

SQL> alter database open;

If  oracle database needs recovery, you can issue below command to recover the database.

SQL> recover database using backup controlfile until cancel;
C:\oracle\oradata\NORTH\REDO03.LOG

SQL> alter database open resetlogs;
Database altered.

I hope any of the above methods will resolve oracle error ORA-16038, ORA-19809, ORA-00312.

Subscribe to get free tech advice, tips and in-depth articles.


Start Your Dream Website Today & Earn Money Online

To Start a dream website, choose a Domain Name & Reliable Hosting Provider, Self-hosted Blogging Platform, WordPress Theme, Email Marketing and SEO Tool for traffic.

SiteGround Hosting Discount - 60% OFF
ConvertKit The Best Email Marketing Software
Free SEMRush SEM and SEO Tool
Get Your Hosting Package with SiteGround, Increase new email subscribers with ConvertKit and Research Keywords with SEMRush to Boost Organic Traffic.





Leave a Reply

Your email address will not be published. Required fields are marked *