Вы находитесь на странице: 1из 8

SOCIALIZACIN Y EVALUACIN DEL MODELO TRANSACCIONAL EN UN

MOTOR DE BASE DE DATOS ESPECFICO

CALLETANA LPEZ BALETA

INSTRUCTOR
JONATHAN QUICENO VARGAS
INGENIERO DE SISTEMAS Y COMPUTACIN

SERVICIO NACIONAL DE APRENDIZAJE


PROGRAMA
ESPECIALIZACIN TECNOLGICA EN GESTIN Y SEGURIDAD DE BASE
DE DATOS
MODALIDAD VIRTUAL
2017
INTRODUCCIN

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 datos Modo de No Archivado Archivado automtico Desactivado

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 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.