When a database is running in ARCHIVELOG mode, if the area which stores the archivelogs on disk gets full, the database comes to a halt and can be accessed only as a sysdba.
The error message when you try to connect as a normal user is ‘ CONNECT INTERNAL UNTIL FREED’
If the following parameter is in use – DB_RECOVERY_FILE_DEST as the archivelog destination , then the size of the parameter DB_RECOVERY_FILE_DEST_SIZE can be increased dynamically and then the database begins to function again –
Ex
SQL> show parameter db_recovery_file_dest;
NAME TYPE VALUE
———————————— ———– ——————————
db_recovery_file_dest string /opt/oracle/flash_recovery_area
db_recovery_file_dest_size big integer 1000M
SQL> SELECT * FROM V$RECOVERY_FILE_DEST;
NAME
——————————————————————————–
SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
———– ———- —————– —————
/opt/oracle/flash_recovery_area
1048576000 1048260608 0 163
There are a couple of possible options.
1) Increase the parameter db_recovery_file_dest_size, which is dynamic.
SQL> alter system set db_recovery_file_dest_size=XG; (larger amount) – Example 2G
2) Stop using the db_recovery_file_dest by unsetting the parameter.
( This assumes you never really wanted to use this option )