Como borrar ArchiveLogs

admin
Desconectado
Ingresó: Jun 1 2009

Cuando se trabaja con una BBDD configurada en modo ArchiveLog, se van generando ArchiveLogs en disco según se van ejecutando sentencias SQL.

En algún momento se deben eliminar de disco, puesto que el espacio no es infinito.

Para que se utilizan los ArchiveLogs

Los ArchiveLogs son el Journal de la BBDD. Es decir: contienen, en un formato codificado, todas las sentencias de modificación de la BBDD (Insert, Update, Delete, Drop, Create, Alter, etc).

Básicamente, los ArchiveLogs se utilizan en el Restore de una BBDD y forman parte del Backup de la BBDD.

Cuando se genera un nuevo ArchiveLog, se registra en el catálogo de RMAN (el Control File y, opcionalmente, en una BBDD aparte). Por tanto, Oracle mantiene una relación de los ArchiveLogs generados y su ubicación.

AL restaurar de un backup hecho en caliente, la restauración tiene dos pasos:

  • Restore: recuperar los Datafiles necesarios
  • Recover: Aplicar los ArchiveLogs precisos.

Si los ArchiveLogs no están donde indica el ControlFile, el Recover se debe hacer manualmente (indicando dónde está cada ArchiveLog y, si es preciso, trayéndolo de cinta a disco.

En caso de backup, si falta algún ArchiveLog, el backup provoca un error y, en consecuencia, el backup no es válido.

Por tanto, cuando se borre un ArchiveLog se debe hacer constar en el catálogo (ControlFile)

Como borrar ArchiveLogs cuando no se utiliza FlashArea

Al borrar ArchiveLogs, hay que tener en cuenta:

  • Que se haya hecho backup del mismo.
  • Que el borrado quede reflejado en el catálogo RMAN (recuérdese que, como mínimo, el ControlFile es el catálogo RMAN).

Por tanto, para borrar ArchiveLogs, recomendamos hacerlo con RMAN con sentencias del tipo:

rman target=/ nocatalog

DELETE ARCHIVELOG ALL BACKED UP;

Si se desea se puede hacer backup y borrado a la vez. Esta solución puede ser ideal para liberar espacio de forma urgente.

rman target=/ nocatalog

BACKUP ARCHIVELOG ALL DELETE INPUT;

Borrar ArchiveLogs con comandos del Sistema Operativo tiene consecuencia:

  • Si no se ha hecho backup del fichero:
    • No se podrá hacer backup hasta que se ejecute un comando RMAN CROSSCHECK ARCHIVELOG ALL;
      • Este comando sincroniza el catálogo con la información de disco.
    • Debemnos realizar, inmediatamente, un backup de la BBDD: si no se ha hecho backup de un ArchiveLog, solo podremos recuperar hasta el momento anterior a dicho ArchiveLog (la fase de Recover terminará cuando se deba procesar dicho ArchiveLog): deberemos realizar un Recover Until ...
  • Si se ha hecho backup del fichero:
    • No se podrá realizar RECOVER hasta que se ejecute un comando RMAN CROSSCHECK ARCHIVELOG ALL;

Por tanto: nunca sew deben borrar ArchiveLogs con herramientas de Sistema Operativo.

Como borrar ArchiveLogs cuando se utiliza FlashArea

Cuando se utiliza FlashArea, se pueden borrar ArchiveLogs con las sentencias RMAN indicadas anteriormente.

No obstante, si se hace backup de los ArchiveLogs de forma periódica, la propia BBDD borra los ArchiveLOgs más antiguos cuando hace falta espacio en la Flash Area. Por tanto, al utilizar FlasArea (y backups periódicos a cinta) nos podemos despreocupar del borrado de ArchiveLogs.

jcols
Desconectado
Ingresó: Oct 20 2009
Muy buen artículo

Califico este artículo como muy bueno y recomenable para todos

Josep Cols

Visita mi álbum de fotos en http://josep.cols.cat  o bien http://www.mialbumgratis.com/fotos/album/josepcols/