sábado, 11 de octubre de 2008

Sincronización detenida: ORA-01274

Recientemente una amiga se comunicó conmigo pues tenía una emergencia: su base de datos standby había dejado de sincronizar. Revisando el alert.log se encontró el error ORA-01274, llegándose a la conclusión que se había agregado un datafile en la base de datos primaria y al tratar de replicar el cambio en el standby, este datafile no se había creado por falta de espacio en disco.

Ayer por la noche, en el foro de Oracle Technet, alguien reportaba una situación similar, pero en este caso el origen del error era menos claro, el resultado el mismo: no se replicó la creación de uno o más datafiles. ¿Qué hacer en una situación como ésta?

Ya antes me había tocado ayudar a otros DBAs en la resolución de este problema, la clave está en seguir los pasos indicados en el Note 221130.1 Recovery failed with error 1274 ORA-19502 ORA-27063 skgfospo SVR4 Error 28.

En una situación como esta, en la que no se logra crear un datafile en la base de datos standby, el datafile es registrado en el controlfile con un nombre similar a UNNAMED0000 y la sincronización se suspende con el error  ORA-1274: cannot add datafile.

Los pasos a seguir para superar el impase son:

  1. Desactivar el manejo automático de archivos
  2. SQL> alter system set standby_file_management = manual scope=memory;
    
  3. Hallar el nombre del datafile no creado
  4. SQL> select name from v$datafile where name like '%UNNAMED%';
    NAME
    --------------------------------------------------------
    e:\oracle\product\10.2.0\database\UNNAMED00033
    
  5. Crear el datafile faltante
  6. SQL> alter database create datafile 
    'e:\oracle\product\10.2.0\database\UNNAMED00033' as 'e:\oradata\orcl\dat04.dbf';
  7. Activar el manejo automático de archivos
  8. SQL> alter system set standby_file_management = auto scope=memory;
    

Ahora ya se puede reiniciar el recovery, problema resuelto!

Posts Relacionados:

¿Te pareció interesante este artículo?, ¿te quedaron algunas dudas?, ¿quieres sugerirme un tema a tratar?, pues déjame tus comentarios o envíame un email y para que NO te pierdas ningún Post, suscríbete por email ahora mismo!

4 comentarios, agrega el tuyo!

Luis De Gracia dijo...

hola Buenos dias, para realizar este procedimiento es necesario abrir la standby o de que forma podria conectarme a la bd.

Saludos desde panama

Enrique Orbegozo dijo...

Hola Luis,
Los pasos señalados se ejecutan en la base de datos standby estando esta montada.
Saludos.

Luis De Gracia dijo...

Muchas gracias por tan pronta respuesta, realizare el procedimiento recomendado.

Anónimo dijo...

Hola;

Tengo un inconveniente con la sincronización de la Base de datos StandBy; resulta que cuando miro la vista v$log_history la secuencia de archivado es la misma que aparece en la BD de producción; con esto pienso que está sincronizando correctamente. Sin embargo cuando ejecuto el comando "archive log list" las secuencias de archivado no son las mismas, a que se debe esto?