🧩 ORA-19504: Failed to Create File


 🧩 Introduction


The ORA-19504: failed to create file error is a common Oracle backup and recovery issue that occurs when the database or RMAN is unable to create a new file (such as a datafile, control file, or backup piece) in the specified directory.

It usually happens during RMAN backups, datafile creation, restore operations, or tablespace additions.


Example:


ORA-19504: failed to create file "/u01/backup/ora_data_01.bkp"

ORA-27040: file create error, unable to create file


Root Cause


This error typically points to one or more of the following:


Insufficient disk space in the target directory.


Incorrect or invalid directory path.


Missing write permissions for the Oracle user.


File already exists with the same name.


OS-level limits (e.g., maximum number of open files or filesystem quota).


Attempting to write to a mount point that is read-only or unavailable.



How to Diagnose


1️⃣ Check RMAN or Alert Log

Look at the complete message around ORA-19504 — it often includes details like:


ORA-19504: failed to create file "/backup/ORA_BKP_01.BKP"

ORA-27040: file create error, unable to create file


The secondary ORA or OSD error can point directly to the root cause (like “No space left on device” or “Permission denied”).


2️⃣ Verify Directory Path Ensure the destination directory exists and is accessible:


ls -ld /u01/backup


If the directory doesn’t exist:


mkdir -p /u01/backup

chmod 775 /u01/backup


3️⃣ Check Disk Space Use the df command to check available space:


df -h /u01/backup


If space is full, move or delete old backups.


4️⃣ Check File Permissions Verify that the Oracle user (usually oracle) has write permissions:


ls -l /u01/backup


Fix permissions if needed:


chmod 775 /u01/backup

chown oracle:dba /u01/backup


5️⃣ Check if File Already Exists If Oracle is trying to create a file with a name that already exists, it may fail unless you specify OVERWRITE.

Check:


ls -l /u01/backup/ora_data_01.bkp


6️⃣ Check Mount Point Status If the directory is on a mounted drive or NFS share, ensure it’s online and writable:


mount | grep backup


If it’s mounted read-only, remount it with write access.


7️⃣ Check OS Limits If running on Linux/UNIX, verify file descriptor and filesystem limits:


ulimit -a


Solutions


✅ 1. Free Up or Expand Disk Space If the filesystem is full, delete old backups or move them:


rm -f /u01/backup/*.bkp


Or add more storage space.


✅ 2. Correct Directory Path and Permissions Make sure the backup directory exists and Oracle can write to it:


mkdir -p /u01/backup

chmod 775 /u01/backup

chown oracle:dba /u01/backup


✅ 3. Use a Different Destination Path If your default backup location is full, specify another path in RMAN:


BACKUP DATABASE FORMAT '/u02/backup/%U';


✅ 4. Allow Overwrite if File Exists If you know the file already exists and can be overwritten:


BACKUP DATABASE FORMAT '/u01/backup/ora_data_01.bkp' REUSE;


✅ 5. Check NFS or Remote Storage If the backup directory is an NFS mount or network share, ensure it’s writable and not disconnected.


✅ 6. Verify Oracle User Quota In some environments, Oracle users have restricted storage quotas. Use:


quota -u oracle


Increase quota if necessary.


Example Scenario


You attempt to run:


BACKUP DATABASE FORMAT '/u01/backup/ORA_FULL_%U.bkp';


and get:


ORA-19504: failed to create file "/u01/backup/ORA_FULL_1_1.bkp"

ORA-27040: file create error, unable to create file

Linux-x86_64 Error: 28: No space left on device


Resolution:


Run df -h /u01/backup and find the disk is 100% full.


Delete old backups or redirect to another mount point /u02/backup/.


Backup then completes successfully.



Best Practices


Always monitor backup destination disk usage with scripts or cron jobs.


Implement RMAN retention policies to automatically delete obsolete backups:



DELETE NOPROMPT OBSOLETE;


Use dynamic naming with %U to avoid overwriting files.


Store backups in dedicated file systems separate from datafiles.


Regularly test backup creation and space availability.



Conclusion


The ORA-19504: failed to create file error indicates that Oracle cannot write to the target backup or data directory.

By ensuring proper directory configuration, adequate space, and correct permissions, you can eliminate this error and maintain reliable backup operations.

Comments