Rman 在控制文件备份中创建控制文件快照文件或一致的控制文件映像。当一个 rman 进程进行控制文件备份时,如果另一个 rman 进程需要创建一个新的快照控制文件,它会给出类似“等待快照控制文件入队”的消息。
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 25/05/2014 22:48:44
ORA-00230: operation disallowed: snapshot control file enqueue unavailable
在本例中,我们使用 sqlplus 命令以 sysdba 身份连接到数据库。然后我们应该确定相关的rman进程并选择以下解决方案之一。
以下查询可以检测导致等待的进程。
SELECT s.SID, USERNAME AS "User", PROGRAM, MODULE,
ACTION, LOGON_TIME "Logon"
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;
它将生成如下输出。
SID User Program Module Action Logon
— —- ——————– ——————- —————- ———
9 SYS rman@orcl (TNS V1-V3) backup full datafile: c10000210 STARTED 25-May-2016
检测到相关进程后,您可以通过选择以下其中一项来避免当前情况:
- 您可以等到入队创建过程完成。
- 您可以取消第一个 rman 进程并在另一个 rman 进程完成后重新启动第一个 rman 进程。
如果需要取消第一个 rman 进程,可以使用如下SQL语句:
select sid,serial# from v$session where sid='9';
alter system kill session 'sid,serial#' immediate;
如果杀会话无效,可以重启动数据库实例。