As usual, I start saying I’m not a DBA, but sometimes perform some DBA task, so…
I had again a problem with a database server running out of disk space due to Oracle database usage. This time it was archivelog and RMAN. I’m pretty sure you could find information of archivelog and rman out there, so I won’t repeat it here. In order to be able to uses RMAN a database must be in archivelog mode. In archivelog mode, the redo logs, are archived in separate files instead of overwritten. This actually means that, under some circumstances your disk will be fully used.
Our knowledge base says that, if you need to free disk space, you must do this:
RMAN> DELETE OBSOLETE;
RMAN> CROSSCHECK ARCHIVELOG ALL;
If you don’t get enough space after that, then
RMAN> BACKUP ARCHIVELOG ALL;
RMAN> DELETE ARCHIVELOG ALL;
However, in my experience what it actually happens when you do this is:
- RMAN creates a new backupset for archivelogs
- The archivelog files are removed
So it doesn’t free any space if you don’t move the backupset outside the filesystem. Even worse, it actually uses more disk space until you delete archivelog.
After removing (lot of times) archivelogs and RMAN backupset, the problem was still there, because new archivelogs files appeared, so, as it’s a critical database, and we still have export backups, we decided to put noarchivelog mode, until we realize what’s going on with this database.