Poner una BBDD en modo Archivelog en Oracle

Hola a todos, hoy os vamos a proponer una tarea que cuando tenemos una BBDD Oracle nos tocará realizar, o al menos pensar en ello, que es cómo poner una BBDD en modo Archivelog. Con este procedimiento, al igual que con el procedimiento de cambio de ubicación de los ficheros de control, que comentamos hace unas semanas, hay que tener cuidado si lo hacemos en entornos de producción, ya que también requiere un reinicio de la instancia, con la consiguiente afectación de las aplicaciones que conectan a la BBDD.

Modo Archivelog de la BBDD

Los ficheros de Redo Log son los ficheros donde se guardan automáticamente los cambios que ocurren en la BBDD. Estos ficheros se utilizan para recuperación en caso de caída de la instancia. Cuando se produce un cambio en la BBDD, además de los mecanismos para que el cambio quede realizado en la BBDD, también se escribe en los ficheros de Redo log. La escritura de los cambios en los ficheros de redo log es en serie, comenzando en el primer fichero, y continuando con los siguientes. Es cíclico, cuando se llega al final del último fichero, se vuelve al principio del primero. Esto quiere decir que se sobrescribe la información que había en el fichero.

Poner una BBDD en modo Archivelog GPSOS

Con este procedimiento, solamente se puede recuperar una BBDD en caso de caída hasta donde esté sobrescrita la información, es decir, los cambios que se hayan guardado en los ficheros de Redo Log que existen. Para poder recuperar la BBDD en caso de caída, se utiliza el modo Archivelog de la BBDD. En este modo, se realiza una copia de cada fichero de Redo Log cuando se completa su escritura a otra ubicación para guardarlo por si es necesario en el futuro para dicha recuperación.

Cómo está configurada la BBDD

Tenemos varias formas de conocer si la BBDD se encuentra en modo Archivelog o no, haciendo consultas a las vistas del catálogo de la misma BBDD.

La columna ARCHIVER En las vistas v$instance y LOG_MODE en v$database nos dicen el modo en que está operando la BBDD

SQL> select * from v$instance;

INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME
----------------------------------------------------------------
VERSION           STARTUP_ STATUS       PAR    THREAD# ARCHIVE LOG_SWITCH_WAIT
----------------- -------- ------------ --- ---------- ------- ---------------
LOGINS     SHU DATABASE_STATUS   INSTANCE_ROLE      ACTIVE_ST BLO
---------- --- ----------------- ------------------ --------- ---
              1 orcl
pruhost
12.2.0.1.0        25/08/20 OPEN         NO           1 STOPPED
ALLOWED    NO  ACTIVE            PRIMARY_INSTANCE   NORMAL    NO
SQL> select name, log_mode from v$database;

NAME      LOG_MODE
--------- ------------
ORCL     NOARCHIVELOG

También hay un comando que nos dice el modo de la BBDD sin acceder a las vistas del catálogo.

SQL> archive log list
Modo log de la base de datos              Modo de No Archivado
Archivado automßtico             Desactivado
Destino del archivo            USE_DB_RECOVERY_FILE_DEST
Secuencia de log en lÝnea mßs antigua     5
Secuencia de log actual           7

Poner una BBDD en modo Archivelog

Se puede especificar el modo archivelog de la BBDD en el momento de la creación de la instancia con el DBCA.

Para poner la BBDD en modo archivelog, es necesario especificar una ruta donde se deben guardar los ficheros de archivelog una vez se creen. Se pueden almacenar hasta 30 copias del fichero especificando distintas rutas.

Como se puede ver en la imagen, no se especifica ninguna ruta en el cuadro de diálogo «Edit Archive Mode Parameters».
En este caso, los ficheros de archivelog generados se almacenan en la Fast_Recovery_Area o Flash_Recovery_Area en versiones anteriores a la 11g.

También se puede hacer de forma manual, posteriormente al momento de la creación de la BBDD. Para cambiar el modo de la BBDD, está tiene que estar en modo MOUNT, con lo que es necesario pararla para poder iniciarla en este modo.

SQL> shutdown immediate
Base de datos cerrada.
Base de datos desmontada.
Instancia ORACLE cerrada.
SQL>
SQL> startup mount
Instancia ORACLE iniciada.

Total System Global Area 1068937216 bytes
Fixed Size                  2288080 bytes
Variable Size             671090224 bytes
Database Buffers          390070272 bytes
Redo Buffers                5488640 bytes
Base de datos montada.

Una vez en modo MOUNT, se pone la BBDD en modo archivelog y se abre para que los usuarios se puedan volver a conectar.

SQL> alter database archivelog;

Base de datos modificada.

SQL> alter database open;

Base de datos modificada.

Comprobar modo de la base de datos

Se puede comprobar que la BBDD está en modo Archivelog

SQL> select name, log_mode from v$database;

NAME      LOG_MODE
--------- ------------
ORCL     ARCHIVELOG
SQL> archive log list
Modo log de la base de datos              Modo de Archivado
Archivado automßtico             Activado
Destino del archivo            USE_DB_RECOVERY_FILE_DEST
Secuencia de log en lÝnea mßs antigua     5
Siguiente secuencia de log para archivar   7
Secuencia de log actual           7

El destino de los ficheros de Archivelog se indica en la línea «Destino del archivo», y en este caso, el valor que muestra esta línea es que se está usando la ruta indicada por el parámetro DB_RECOVERY_FILE_DEST. Se puede comprobar ese parámetro con la instrucción:

SQL> show parameter db_recovery_file_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      F:\fast_recovery_area
db_recovery_file_dest_size           big integer 4182M

Se comprueba que se están copiando los ficheros en la ruta indicada:

Poner una BBDD en modo Archivelog

Si se quiere cambiar la ruta destino de los ficheros o añadir un nuevo destino (hasta 30) podemos ejecutar lo siguiente:

ALTER SYSTEM SET log_archive_dest_1='LOCATION=F:\ORCL';

Y comprobamos que se generan los ficheros en la nueva ruta:

Esperamos que os haya sido de utilidad.

Un saludo.

Equipo de base de datos

Más info: https://franhormigo.wordpress.com/2017/06/17/activar-desactivar-y-comprobar-el-modo-archivelog/

Si tienes dudas sobre su administración o relacionada con Oracle o SQL Server, ¡¡no dudes en contactar con nosotros que estaremos encantados de ayudar!!

Si no quieres perderte trucos como este y estar al día de este mundo, suscríbete a nuestra newsletter. Te mantendremos informados con un solo email al mes.

¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.

Sígue a GPS en LinkedIn