ORA-00230 “snapshot control file enqueue unavailable”: Fast Diagnosis and Fix

You hit:

ORA-00230: operation disallowed: snapshot control file enqueue unavailable

Your RMAN job can’t obtain the CF (control file) enqueue. Another RMAN session holds it, or a crashed one left it behind.

Typical triggers

  • Concurrent RMAN backups or catalog maintenance.
  • Aborted RMAN session that didn’t release locks.
  • Non-shared snapshot control file path in RAC.
  • Invalid or unwritable snapshot control file location.

Quick path to green

1) Find and kill the blocker

Check active RMAN processes:

ps -ef | grep -i rman

Identify CF enqueue holders and waiters:

-- Blocker(s)
SELECT s.sid, s.serial#, s.username, s.program, l.type, l.lmode, l.ctime
FROM   v$lock l JOIN v$session s ON s.sid = l.sid
WHERE  l.type = 'CF' AND l.block = 1;

-- Waiters
SELECT s.sid, s.serial#, s.username, s.program, l.type, l.request, l.ctime
FROM   v$lock l JOIN v$session s ON s.sid = l.sid
WHERE  l.type = 'CF' AND l.request > 0;

End an orphaned blocker:

ALTER SYSTEM KILL SESSION '<sid>,<serial#>' IMMEDIATE;

or kill the OS process if the RMAN binary is defunct.

2) Verify the snapshot control file path

In RMAN:

SHOW SNAPSHOT CONTROLFILE NAME;
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/path/shared/FRA/snapcf_db.f';

Use a directory that exists, is writable by the Oracle OS user, and is visible to all instances in RAC.

3) Clean up a stale file

Only if no RMAN jobs are running and no CF locks exist:

ls -l /path/shared/FRA/snapcf_db.f
rm /path/shared/FRA/snapcf_db.f

RMAN recreates it on next use.

4) Rerun the RMAN command

Retry the backup, duplicate, or restore after clearing the lock.

Prevent repeats

  • Serialize backups. Use one RMAN job with multiple channels instead of multiple overlapping jobs.
  • Harden scheduling. Stagger maintenance windows and catalog jobs.
  • Share the path. In RAC, set a single shared snapshot control file location.
  • Monitor locks. Alert on long-lived CF locks and zombie RMAN processes.

Copy-paste checklist

  1. ps -ef | grep -i rman
  2. Run the CF lock queries above
  3. ALTER SYSTEM KILL SESSION ... if orphaned
  4. SHOW SNAPSHOT CONTROLFILE NAME and fix path if wrong
  5. Remove stale snapshot file when safe
  6. Re-run RMAN job

This resolves the vast majority of ORA-00230 incidents within minutes.