En este artículo vamos a ver como configurar las bases de datos Oracle en modo ARCHIVELOG o NOARCHIVELOG.
Base de datos Oracle en modo NOARCHIVELOG.
El modo NOARCHIVELOG indica que esta desactivado el archivado de los redo log, Oracle reutiliza de forma circular (LGWR es el proceso encargado de esta tarea) los redo log y en este modo los reutilizará sin realizar el archivado. En NOARCHIVELOG tendremos que realizar nuestros backup en frío (cold), es decir, con la base datos parada y si tenemos que realizar un RESTORE perderemos todos los cambios que se hayan producido en ella desde que realizo el último backup. La base de datos en modo NOARCHIVELOG se debería utilizar solo para entornos donde no sea importante la pérdida de datos en caso de un RESTORE, por ejemplo en entornos de desarrollo o en entornos de pruebas, en entornos de producción es imprescindible que nuestras bases de datos estén ejecutándose en modo ARCHIVELOG.
Bases de datos Oracle en modo ARCHIVELOG.
El modo ARCHIVELOG hace que Oracle realice un archivado (ARC0 proceso encargado de realizarlo) del grupo de redo log antes de que el LGWR lo reutilice, con la base de datos en modo ARCHIVELOG podemos hacer backups en caliente (hot), es decir, con la base de datos arrancada, lo que nos permitirá realizar RESTORES de la base de datos sin perdida de datos.
Como saber en que modo esta una base de datos.
Para saber en que modo esta nuestra base de datos ejecutamos la instrucción ARCHIVE LOG LIST desde sqlplus.
En este caso la base de datos esta en modo NOARCHIVELOG obtendremos este resultado:
SQL> ARCHIVE LOG LIST
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination
Oldest online log sequence 160
Current log sequence 162
En este caso la base de datos esta en modo ARCHIVELOG obtendremos este resultado:
SQL> ARCHIVE LOG LIST
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /U03/oradata/PRUEBA01/archive
Oldest online log sequence 1
Next log sequence to archive 1
Current log sequence 1
Pasar una base de datos a modo ARCHIVELOG desde NOARCHIVELOG.
El modo ARCHIVELOG requiere que unos parámetros de la base de datos estén inicializados, los parámetros son los siguientes:
log_archive_dest_1 Este parámetro debe tener la ruta (path) donde el ARC0 realizará la copia (archivado) de los grupos de redo log que se hayan completado, en Unix/Linux se suele crear un filesytem dedicado por base de datos para uso exclusivo de archivado, en entorno Windows tendríamos un directorio dedicado para esta tarea por cada base de datos.
Ejemplo:
log_archive_dest_1='LOCATION=/U03/oradata/PRUEBA01/archive’
log_archive_format – Este parámetro sirve para definir la mascara del nombre de los archivos que el ARC0 va ha archivar en la ruta definida en el parámetro anterior.
Ejemplo:
log_archive_format='PRUEBA01_%s.arc'
Detalle de la mascara:
PRUEBA01 – Nombre de la base de datos.
%s – Número de secuencia del log.
arc – Extensión que indica que es un archivo de archive (archivado)
Bien, empezamos con el proceso.
– Preparación de los parámetros de la base de datos.
Si estamos usando init.ora en nuestra base de datos.
Editamos el init.ora de la base de datos y añadimos las dos líneas con los parámetros vistos anteriormente.
log_archive_dest_1='LOCATION=/U03/oradata/PRUEBA01/archive'
log_archive_format='PRUEBA01_%s.arc'
Si estamos usando spfile, desde sqlplus y como usuario sys.
SQL> ALTER SYSTEM SET log_archive_dest_1='LOCATION=/U03/oradata/PRUEBA01/archive' SCOPE=SPFILE;
SQL> ALTER SYSTEM SET log_archive_format='PRUEBA01_%s.arc' SCOPE=SPFILE;
SQL> SHUTDOWN IMMEDIATE;
Arrancamos la base de datos en modo MOUNT (montada), desde sqlplus y como usuario sys.
SQL> STARTUP MOUNT;
Cambiamos la base de datos a modo ARCHIVELOG, desde sqlplus y como usuario sys.
SQL> ALTER DATABASE ARCHIVELOG;
Abrimos la base de datos.
SQL> ALTER DATABASE OPEN;
- Pasar una base de datos a modo NOARCHIVELOG desde ARCHIVELOG.
También podemos realizar la tarea inversa que es pasar una base de datos desde ARCHIVELOG a NOARCHIVELOG.
Paramos la base de datos.
SQL> SHUTDOWN IMMEDIATE;
Arrancamos la base de datos en modo MOUNT (montada) desde sqlplus y como usuario sys.
SQL> STARTUP MOUNT;
Cambiamos la base de datos a modo NOARCHIVELOG, desde sqlplus y como usuario sys.
SQL> ALTER DATABASE NOARCHIVELOG;
Abrimos la base de datos.
SQL> ALTER DATABASE OPEN;