Rman creates a control file snapshot file or a consistent control file image in the control file backups. While a rman process taking a control file backup, if another rman process needs to create a new snapshot control file, it will give a message like “waiting for snapshot control file enqueue“.
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-03002: failure of backup command at 25/05/2014 22:48:44
ORA-00230: operation disallowed: snapshot control file enqueue unavailable
In this case, we are connecting to the database as sysdba with the sqlplus command. Then we should determine the relavent rman process and choose one of the following solutions.
The following query can detect the process that causes the wait.
SELECT s.SID, USERNAME AS “User”, PROGRAM, MODULE,
ACTION, LOGON_TIME “Logon”, l.*
FROM V$SESSION s, V$ENQUEUE_LOCK l
WHERE l.SID = s.SID
AND l.TYPE = ‘CF’
AND l.ID1 = 0
AND l.ID2 = 2;
It will generate an output as follows.
SID User Program Module Action Logon
— —- ——————– ——————- —————- ———
9 SYS rman@orcl (TNS V1-V3) backup full datafile: c10000210 STARTED 25-May-2016
Once you have detected the relevant process, you can avoid the current situation by choosing one of the following:
- You can wait until the enqueue creation process is finished.
- You can cancel the first rman process and restart the first rman process after the other rman process is finished.