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.
- Desactivar el modo archivelog de Oracle.
- Listado del resultado de ejecución de todos los comandos.
- Tecnologías empleadas para realizar el artículo.
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.