You are on page 1of 8

SOCIALIZACION Y EVALUACION DEL MODELO

TRANSACCIONAL EN UN MOTOR DE BASE DE


DATOS ESPECFICO

INTRODUCCION
En cada base de datos contiene al menos un archivo de datos y un archivo de
registro de transacciones. Oracle Contiene un mtodo llamado Archivelog el cual
almacena los detalles de todas las modificaciones que se realizan sobre la base de
datos.
Cmo funciona el modo ARCHIVELOG en Oracle
Oracle escribe en los archivos de registros de reconstruccin en lnea (redo log
online) de manera cclica, cuando los usuarios realizan modificaciones en la base
de datos, Oracle guarda todas las transacciones que se van realizando en estos
archivos de redo log online. Empieza a escribir en el primer archivo de redo log
online, cuando se llena pasa al segundo, y as sucesivamente hasta llegar al ltimo
archivo de redo log online, cuando llena el ltimo inicia un proceso en segundo plano
llamado LGWR (Log Writer) para sobreescribir los contenidos del primer archivo de
redo log online y volver a empezar. Cuando Oracle se ejecuta en modo
ARCHIVELOG el proceso en segundo plano llamado ARCH hace una copia de cada
archivo de redo log online una vez que el proceso LGWR termina de escribir en l,
guarda dicha copia en los archivos de reconstruccin fuera de lnea (redo log
offline) en disco:

El modo ARCHIVELOG de Oracle es un mecanismo de proteccin ante fallos de


disco implementado por Oracle. Proteger la base de datos ante posibles fallos
fsicos de disco y tambin ante eliminaciones o modificaciones no deseadas de los
datos. Con este mecanismo tendremos varias ventajas:

Se podrn realizar copias de seguridad fsicas online, copias de los ficheros


fsicos sin detener la base de datos.
Se podr recuperar la base de datos en un momento especfico del tiempo,
se podr recuperar la base de datos a una hora y da indicados.

La nica desventaja es que este modo puede ralentizar (mnimamente) la base de


datos y requiere de ms espacio en disco para alojar los redo log offline (archivos
de reconstruccin fuera de lnea).
En realidad Oracle implement este modo de ARCHIVELOG cuando los discos
duros eran ms susceptibles de fallar. Hoy en da con los discos duros profesionales
de que disponemos en niveles de RAID adecuados es bastante difcil que ocurran
fallos, aunque no es imposible. Adems, este modo, como ya hemos comentado,
tiene varias ventajas por las que merece la pena usarlo.

Recomendaciones de seguridad para ARCHIVELOG en Oracle


A continuacin indicamos algunas recomendaciones para disponer de una base de
datos robusta, con un alto grado de disponibilidad y de proteccin ante fallos (tanto
humanos como fsicos de hardware):
1. En primer lugar, como ya hemos comentado, es activar el modo
ARCHIVELOG.
2. Debemos tener los archivos de redo log online (archivos de registro de
reconstruccin en lnea) multiplexados. Oracle permite establecer varios
archivos de redo log online en varias ubicaciones diferentes. Recomendamos
que haya varios archivos de redo log online en discos fsicos diferentes.
De esta forma, si un disco fsico falla, siempre habr una copia con las ltimas
transacciones en otro disco fsico, as podremos recuperar la base de datos
en un momento del tiempo.
3. Debe hacerse copia de seguridad (a ser posible con RMAN) de los archivos
de redo log offline (archivos de registro de reconstruccin fuera de lnea),
generados por Oracle cuando se van llenando los redo log online. Adems,
esta copia de seguridad debe hacerse a varios dispositivos (cinta, disco).
RMAN contempla, entre sus muchas opciones, la posibilidad de hacer copia
de seguridad de estos archivos y del resto que componen la base de datos,
eliminndolos de forma automtica si la copia se ha realizado con xito. De
esta forma la unidad de disco destino de los redo log offline no se llenar,
pues se irn eliminando los archivos conforme se vaya haciendo copia de
seguridad de ellos.
4. Tras explicar el funcionamiento del ARCHIVELOG, volvemos a repetir que es
muy importante que todos los archivos que componen la base de datos de
Oracle (datafiles de los tablespaces, los archivos de control, los redo log
offline, los redo log online) estn ubicados en discos duros profesionales en
un nivel de RAID adecuado tolerante a fallos.

Activar el modo ARCHIVELOG en Oracle 11g R2


Antes de activar el modo ARCHIVELOG de una base de datos Oracle, lo que
haremos en primer lugar es verificar el estado actual, para asegurarnos de que,
efectivamente, el modo ARCHIVELOG no est activado. Para comprobarlo
abriremos SQL*Plus desde una ventana de MS-DOS (si estamos en Windows) o
una ventana de Terminal (si estamos en Linux), para ello ejecutamos el siguiente
comando:
sqlplus /nolog
Nos conectamos a la base de datos con un usuario con permisos de DBA con el
comando:
conn sys/contrasea as sysdba
Ejecutamos el siguiente comando Oracle para comprobar si la base de datos est
o no en modo ARCHIVELOG:
archive log list
El resultado del comando anterior en caso de que el ARCHIVELOG no est activo
es:
Modo
log
de
la
base
de
Archivado automtico Desactivado

datos

Modo

de

No

El texto de la ventana anterior:


sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Dom Ago 7 22:33:26 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
conn sys/XXX as sysdba
Conectado.
archive log list;
Modo log de la base de datos Modo de No Archivado

Archivado

Archivado automtico Desactivado


Destino del archivo USE_DB_RECOVERY_FILE_DEST
Secuencia de log en lnea ms antigua 5
Secuencia de log actual 7
Tambin podremos comprobar el estado de ARCHIVELOG ejecutando la siguiente
consulta SQL:
select name, log_mode from v$database;

Devolver: LOG_MODE = NOARCHIVELOG si la bd no est en modo


ARCHIVELOG.

Tras asegurarnos de que la base de datos no est en modo ARCHIVELOG, como


hemos indicado anteriormente, ahora ejecutaremos el siguiente comando para
indicar la carpeta de destino de los redo log offline:
alter system set log_archive_dest_1='location=C:archive_log_offline' scope=spfile;
Ahora, para que se apliquen los cambios y para establecer la base de datos en
modo ARCHIVELOG definitivamente, deberemos detener la base de datos para
iniciarla en modo "mount" (montada). Por ello, si nuestra base de datos requiere un
alto grdo de disponibilidad y hay usuarios conectados deberemos hacerlo en un
momento del da en que el impacto sea menor. El proceso es rpido por lo que la
base de datos estar detenida un minuto a lo sumo. Para detener la base de datos
ejecutaremos:
shutdown immediate

El texto de la ventana anterior:


alter system set log_archive_dest_1='location=C:/archive_log_offline' scope
= spfile;
Sistema modificado.
shutdown immediate
Base de datos cerrada.

Base de datos desmontada.


Instancia ORACLE cerrada.
Antes de iniciar la base de datos, es importante que la carpeta de destino de los
redo log offline archivados exista en el sistema de ficheros del sistema operativo, en
nuestro ejemplo hemos creado la carpeta "archive_log_offline" en la unidad C:

Iniciamos la base de datos en modo mount con el comando:


startup mount;
Ejecutamos el siguiente comando para indicar a Oracle que la base de datos se
iniciar a partir de ahora en modo ARCHIVELOG:
alter database archivelog;
Abriremos la base de datos con el comando:
alter database open;
A partir de ahora nuestra base de datos ya estar en modo ARCHIVELOG.
Podremos comprobarlo (como ya hemos indicado) con el comando:
archive log list;
Y la sentencia SQL:
select log_mode from v$database;

El texto de la ventana anterior:


startup mount;
Instancia ORACLE iniciada.
Total System Global Area 1720328192 bytes
Fixed Size 2176448 bytes
Variable Size 1023412800 bytes
Database Buffers 687865856 bytes
Redo Buffers 6873088 bytes
Base de datos montada.
alter database archivelog;
Base de datos modificada.
alter database open;
Base de datos modificada.
archive log list;
Modo log de la base de datos Modo de Archivado
Archivado automtico Activado
Destino del archivo C:/archive_log_offline
Secuencia de log en lnea ms antigua 5
Siguiente secuencia de log para archivar 7
Secuencia de log actual 7
select log_mode from v$database;
LOG_MODE
-----------ARCHIVELOG

Si queremos forzar a Oracle a que escriba los redo log online en los redo log
offline podemos ejecutar el comando:
alter system switch logfile;

Este comando podremos ejecutarlo para forzar el copiado, para comprobar que el
ARCHIVELOG est funcionando o cuando queremos realizar algn cambio
hardware o software que suponga algn "peligro" para los datos, en estos casos
forzaremos un copiado de los redo log online a los redo log offline y haremos copia
de seguridad. Por supuesto, Oracle realiza el copiado de forma automtica cada vez
que un redo log online se llena, como ya hemos indicado, por lo que este comando
no deberemos usarlo salvo en circunstancias especficas.

Hemos ejecutado tres veces el comando alter system switch logfile; como ejemplo
y Oracle habr creado tres ficheros de redo log offline en la carpeta de destino:

Nota: no debemos usar "alter system set log_archive_start = TRUE scope = spfile;",
este parmetro ha quedado obsoleto a partir de la versin 10g de Oracle, ya no es
necesario.