Cómo configurar Oracle en modo archivelog

En una BBDD Oracle contínuamente se están escribiendo las instrucciones que ejecutamos (hasta el commit) con nuestras modificaciones en lo que se conoce como RedoLog, como si se tratase de un cuaderno de bitácora. Estos son unos tablespaces especiales que habitualmente poseen redundancia y se suelen configurar en al menos tres grupos de estos: El que se usa actualmente donde oracle escribe el actual RedoLog, el que estábamos usando antes de usar el actual (y que cuando se cambia, conserva una pequeña actividad residual hasta que se ha completado el cambio) y el que usaremos cuando llenemos el actual (sin uso hasta ese momento). Podemos forzar este cambio, ejecutando:

alter system switch logfile;
La idea de estos Redolog, es que si partimos de una base de datos recién instalada y tenemos todos los ficheros RedoLog hasta el día actual, podríamos ir aplicando los cambios escritos en estos redologs hacia adelante, y podriamos dejarla como estaba la BBDD en una fecha y hora determinadas. En vez de usar una BBDD recién instalada, podemos usar una copia física (donde la BBDD está en estado consistente), y aplicar ficheros de redolog hacia adelante, pudiendo recuperar hasta justo antes de algún fatídico cambio.
El problema que tiene esta teoría, es que Oracle va reutilizando los ficheros DBFs que forman los RedoLog de manera cíclica, y sólo tenemos los tres últimos RedoLogs. El modo ArchiveLog le dice a Oracle que antes de reciclar un DBF de un RedoLog, deje una copia del fichero en otro directorio, y así podremos guardar más allá de los tres últimos. Además, tener la BBDD en este modo configurada, nos permitirá poder hacer backups físicos con RMAN sin parar el servicio de Oracle... todo un lujo.
Para configurar este modo en Oracle 9.2 (al menos) realizaremos los siguientes pasos:
  1. Crear los directorios para almacenar los archiveLogs.
    mkdir -p  /opt/backups_oracle/archivelogs \      
    /opt/backups_oracle/backupset/controlfiles

    chown oracle.dba -R /opt/backups_oracle
  2. Conectarse como DBA a la base de datos...
    su - oracle
    sqlplus /nolog

    SQL> connect /as sysdba;
  3. Parar la base de datos, y después montarla
    shutdown immediate;
    startup mount;
  4. Decirle a la bbdd donde debe dejar los Redolog reciclados, configurar la BBDD en modo archivelog, y abrir la bbdd...
    alter system set \
    log_archive_dest='/opt/backups_oracle/archivelogs' \
    scope=both;

    alter database archivelog;
    alter database open;
  5. Guardar la configuración en el SPFile
    alter system set log_archive_start=true scope=spfile;
  6. Comprobar que ya tenemos la BBDD configurada, ejecutando:
    select log_mode from v$database;
    show parameter log_archive;
  7. Reiniciar la Base de datos, para que arranque ya con este modo, y empiece a rotar al directorio que hemos configurado...
    shutdown immediate;
    startup;

Forzar la rotación de redolog, un par de veces para comprobar que se están guardando nuevos ficheros en el directorio: /opt/backups_oracle/archivelogs/

alter system switch logfile;
alter system switch logfile;

1 comentario:

Anónimo dijo...

mira flaco esto si sirve

SQL> alter system set log_archive_dest_1='location=C:/Respaldos/Destino1';