Cómo activar/desactivar oracle archivelog

¿Qué es el Oracle ArchiveLog Mode? Las bases de datos Oracle se pueden configurar en dos modos, ARCHIVELOG mode y NOARCHIVELOG mode.

  • ARCHIVELOG mode permite configurar la base de datos de tal manera que se cree un backup de todas las transacciones que tienen lugar en la BD, de modo que se cuente con un método de recuperación en cualquier punto en el tiempo dentro de los límites de almacenamiento de archives.
  • NOARCHIVELOG mode es todo lo contrario, al no guardar un registro de todas las transacciones de la base de datos, no hay posibilidad de restaurar en un punto concreto. Eso sí, mejora ligeramente el rendimiento ya que se ahorran esas escrituras extra.

Habilitar el modo ARCHIVELOG

Lo primero es confirmar el modo en el que estamos haciendo una consulta a la vista v$database:

SQL > select name,log_mode from v$database;

NAME LOG_MODE
--------- -----------
BDFOO     NOARCHIVELOG

Información extra:

SQL > archive log list
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     46835
Next log sequence to archive   46836
Current log sequence           46836

Para poder modificar el modo de archive es necesario bajar la base de datos y después iniciarla en modo mount (como un startup mount):

$ srvctl stop database -d  BDFOO
$ srvctl start database -d BDFOO -o mount

Una vez realizado esto, accedemos por SQLPlus y activamos el modo archive:

SYS.BDFOO>ALTER DATABASE ARCHIVELOG;

Database altered.

Elapsed: 00:00:00.10

Sólo falta parar la base de datos y hacer un arranque completo de la misma:

$ srvctl stop database -d BDFOO
$ srvctl start database -d BDFOO

Una vez arrancada la BD, ya podremos ver el modo activo y su estado con los mismos comandos que ejecutamos inicialmente:

SYS.BDFOO>select name,log_mode from v$database;

NAME      LOG_MODE
--------- ------------
BDFOO     ARCHIVELOG

1 row selected.

Elapsed: 00:00:00.00
SYS.BDFOO>archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     46835
Next log sequence to archive   46836
Current log sequence           46836

Deshabilitar el modo ARCHIVELOG

Para deshabilitar el modo archive, hay que seguir exactamente los mismos pasos que para activarlo, pero cambiando la sentencia de activación por lo desactivación:

SYS.BDFOO>ALTER DATABASE NOARCHIVELOG;

Database altered.

Elapsed: 00:00:00.10