Volver al blog
Oracle 2 min de lectura

ORA-01153: no arranca la recuperación gestionada en una standby de Data Guard

Arrancar la recuperación gestionada en una standby de Oracle Data Guard falla con ORA-01153 porque ya hay una sesión de media recovery activa. Cómo distinguir un MRP huérfano de un trabajo de RMAN y cancelar solo el primero.

Portada del artículo sobre el error ORA-01153 en Oracle Data Guard

En una configuración de Oracle Data Guard, al intentar arrancar el proceso de recuperación en la base standby aparece un ORA-01153. El mensaje es escueto y no dice qué está ocupando la recuperación: solo que ya existe una sesión de media recovery incompatible en marcha.

El error

ORA-01153

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT
*
ERROR at line 1:
ORA-01153: an incompatible media recovery is active

La causa

Oracle no admite dos sesiones de media recovery simultáneas sobre la misma base. El ORA-01153 confirma que ya hay una activa, y en la práctica responde a dos escenarios distintos:

  • Un proceso de recuperación gestionada (MRP) que quedó arrancado de un intento anterior y sigue activo, aunque la standby no esté sincronizando.
  • Una sesión de RMAN ejecutando un restore, un recover o un backup sobre esa misma base.

La distinción importa: en el primer caso la sesión sobra y se cancela sin consecuencias; en el segundo hay un trabajo legítimo en curso y cancelar la recuperación no es la solución, sino esperar a que RMAN termine.

La solución

Comprueba primero qué hay activo en la standby y, si se trata de un MRP huérfano, cancélalo antes de volver a arrancar la recuperación.

  1. Revisa qué procesos de recuperación existen y en qué secuencia van.
  2. Si el MRP aparece activo pero la secuencia aplicada no avanza, cancela la sesión actual.
  3. Vuelve a lanzar el arranque de la recuperación gestionada.
SELECT process, status, thread#, sequence# FROM v$managed_standby;

Confirmado que la sesión de recuperación está de más, se cancela:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Database altered.

Y se vuelve a ejecutar el comando de arranque, que ahora no devuelve ningún error:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

Database altered.

Resultado

La recuperación gestionada arranca limpia y el proceso de sincronización de la standby continúa aplicando el redo sin más incidencias.

Si el error persiste, la sesión que bloquea la recuperación no es un MRP huérfano sino un trabajo de RMAN en curso. Insistir con el CANCEL no lo resolverá: identifica el trabajo, espera a que termine —o cancélalo desde RMAN si ya no hace falta— y arranca la recuperación después.