Mostramos cómo activar y desactivar el modo de archivelog (archivado automático) de una base de datos Oracle Database 9i. Utilizando SQL*Plus y el comando alter database archivelog.

Cómo activar el modo de archive log (archivado automático) de una base de datos Oracle

Este manual muestra y explica cómo activar el modo de archivelog de una base de datos Oracle

Abriremos la aplicación SQL Plus de Oracle desde una ventana de MS-DOS («Inicio» – «Ejecutar» – «cmd»):

sqlplus /nolog

Nos conectamos con un usuario con suficientes privilegios a la base de datos Oracle a la que queramos activarle el modo Archive Log (ARCHIVELOG), con el comando:

connect usuario/contraseña@NOMBRE_BASE_DATOS as sysdba

Si ejecutamos este comando y la base de datos está en modo OPEN (abierta):

alter database archivelog;

Nos dará el siguiente error:

alter database archivelog
*
ERROR at line 1:
ORA-01126: database must be mounted EXCLUSIVE and not open for this operation

Indicando que para poder cambiar la base de datos Oracle a modo archivado (archive log) hay que iniciarla en modo «mount» (montado). Para ello hay que detenerla e iniciarla con los siguientes comandos:

shutdown immediate;

Resultado comando:

Database closed.
Database dismounted.
ORACLE instance shut down.

La iniciamos en modo «mount» con el comando:

startup mount;

Resultado comando:

ORACLE instance started.
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
Database mounted.

Para cambiar a modo archivado ejecutaremos el siguiente comando:

alter database archivelog;

Resultado comando:

Database altered.

Volveremos a iniciar la base de datos:

alter database open;

Resultado comando:

Database altered.

Para activar el archivado automático comprobamos el valor del parámetro «log_archive_start», si está a «false» lo pondremos a «true». Para consultar el valor actual del parámetro ejecutaremos el siguiente comando:

show parameter log_archive_start;

Devolverá el siguiente resultado:

NAME TYPE VALUE
log_archive_start boolean FALSE

Modificaremos el parámetro «log_archive_start» a «true» con el siguiente comando:

alter system set LOG_ARCHIVE_START=TRUE SCOPE=spfile;

Resultado comando:

System altered.

Al ejecutar «SCOPE=spfile» haremos que los cambios se guarden definitivamente.

Para que los cambios tengan efecto es recomendable parar y volver a iniciar la base de datos:

shutdown immediate;

Iniciaremos la base de datos en modo normal:

startup;

Notas:

Para comprobar en qué modo está la base de datos:

select log_mode from v$database;

Resultado:

LOG_MODE
NOARCHIVELOG
(está en modo no archivado)

select log_mode from v$database;

LOG_MODE
ARCHIVELOG
(está en modo archivado)

Otra forma:

archive log list;

Resultado:

Database log mode Archive Mode
Automatic archival Enabled
Archive destination C:/oracle/ora92/RDBMS
Oldest online log sequence 395
Next log sequence to archive 397
Current log sequence 397

Para ver el valor parámetro de archivado automático:

show parameter log_archive_start;

NAME TYPE VALUE
log_archive_start boolean FALSE

Desactivar el modo archivelog de Oracle

Para desactivar el modo archivelog de Oracle abriremos la aplicación SQL Plus de Oracle desde una ventana de MS-DOS («Inicio» – «Ejecutar» – «cmd»):

sqlplus /nolog

Nos conectamos con un usuario con suficientes privilegios a la base de datos Oracle a la que queramos desactivarle el modo Archive Log (ARCHIVELOG), con el comando:

connect usuario/contraseña@NOMBRE_BASE_DATOS as sysdba

Ejecutamos el siguiente comando para desactivar el modo archive log:

alter system archive log stop;

Mostrará el siguiente resultado:

System altered.

Para comprobar que se ha desactivado correctamente:

archive log list;

Mostrará el siguiente resultado:

Database log mode Archive Mode
Automatic archival Disabled
Archive destination C:/oracle/oradata/bdtest/archive
Oldest online log sequence 70
Next log sequence to archive 72
Current log sequence 72

Listado del resultado de ejecución de todos los comandos

A continuación os mostramos todo el contenido de la ventana de MS-DOS:

sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 – Production on Fri Jul 14 12:30:36 2006
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect /@BDLOCAL as sysdba;
Connected.
SQL> select log_mode from v$database;
LOG_MODE
————
NOARCHIVELOG
SQL> show parameter log_archive_start;
NAME TYPE VALUE
———————————— ———– ——————————
log_archive_start boolean FALSE
SQL> alter database archivelog;
alter database archivelog
*
ERROR at line 1:
ORA-01126: database must be mounted EXCLUSIVE and not open for this operation
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
Database mounted.
SQL> alter database archivelog;
Database altered.
SQL> select log_mode from v$database;
LOG_MODE
————
ARCHIVELOG
SQL> alter database open;
Database altered.
SQL> show parameter log_archive_start;
NAME TYPE VALUE
———————————— ———– ——————————
log_archive_start boolean FALSE
SQL> alter system set LOG_ARCHIVE_START=TRUE SCOPE=spfile;
Sistema modificado.
SQL> show parameter log_archive_dest
NAME TYPE VALUE
———————————— ———– ——————————
log_archive_dest string
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_2 string
log_archive_dest_3 string
log_archive_dest_4 string
log_archive_dest_5 string
log_archive_dest_6 string
log_archive_dest_7 string
log_archive_dest_8 string
log_archive_dest_9 string
NAME TYPE VALUE
———————————— ———– ——————————
log_archive_dest_state_1 string enable
log_archive_dest_state_10 string enable
log_archive_dest_state_2 string enable
log_archive_dest_state_3 string enable
log_archive_dest_state_4 string enable
log_archive_dest_state_5 string enable
log_archive_dest_state_6 string enable
log_archive_dest_state_7 string enable
log_archive_dest_state_8 string enable
log_archive_dest_state_9 string enable
SQL> show parameter log_archive_dest
SQL> ALTER SYSTEM ARCHIVE LOG STOP;
System altered.
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Disabled
Archive destination C:/oracle/oradata/bdtest/archive
Oldest online log sequence 70
Next log sequence to archive 72
Current log sequence 72

Tecnologías empleadas para realizar el artículo

Para realizar este manual hemos utilizado:

  • Oracle Enterprise 9.2.
  • Oracle XE.
  • Windows XP.