top of page

REDO LOG FILES (ARCHIVOS DE REHACER)

  • estructurafisicabd2
  • 21 ene 2014
  • 4 Min. de lectura

En el entorno de Oracle RDBMS (Sistema de gestión de bases de datos relacionales), los registros de rehacer comprenden archivos que registran un historial de todos los cambios realizados en la base de datos. Cuando algo se cambia en un fichero de datos, Oracle realiza el registro de rehacer.

¿Qué hacen los redo log files?

Registran cambios a la base de datos como resultado de transacciones o acciones internas del servidor Oracle.

lo que hay que entender como principio básico , es que cuando alguna operación DML (insert,update o delete) o una DDL (alter, create, drop) sucede en nuestra base de datos, Oracle registra los cambios en memoria, en un buffer llamado Redo Log Buffer, en el buffer hay un proceso asociado llamado LGWR (LOG WRITE). El proceso LGWR de lo que se encarga es de escribir de la estructura de memoria (Redo) Log Buffer a l redo log file que esta online (disponible).

Los redo log files online están conformados por vectores de cambio (change vectors), cada uno de estos vectores describe los cambios a un bloque de datos.

Todos los registros de tipo redo tiene metadatos relevantes al cambio, estos incluyen:

  • SCN (System Change Number) y la estampa de tiempo del cambio

  • El ID de la transacción que ha generado el cambio

  • SCN y la estampa de tiempo cuando la transacción fue cometida (si es que fue cometida)

  • Tipo de operación que efectuó el cambio

  • Nombre y tipo del segmento de dato modificado

Los registros redo log siempre contienen el estado más reciente de la BD.

Para que los redo log files funcionen la base de datos debe estar en modo ARCHIVELOG.

MODO NOARCHIVELOG: un redo log file lleno está disponible después de los cambios registrados en la base de datos se han escrito en los archivos de datos .

MODO ARCHIVELOG : un redo log file lleno está disponible para LGWR después de los cambios registrados en la base de datos se han escrito en los archivos de datos y ademas el redo log file esta archivado.

¿Para qué sirven los redo log file?

Protegen la base de datos de la pérdida de integridad en casos de fallos, ya sea de suministro eléctrico , fallas en el disco , etc.

En el proceso de recuperación, se presenta tanto lo que es aplicar cambios cometidos no reflejados en los datafiles, a esto se le conoce como Roll Forward, y remover los cambios aplicados no cometidos de los datafiles, a esto se le conoce como Roll Back.

"Una sentencia COMMIT en SQL finaliza una transacción de base de datos dentro de un sistema gestor de base de datos relacional (RDBMS) y pone visibles todos los cambios a otros usuarios."

Algoritmo de recuperación

  1. Leer las entradas de tipo Redo Log, empezando con el más antiguo.

  2. Verificar el numero SCN del Cambio.

  3. Buscar el Marcador de Commit.

  4. Si el marcador es encontrado, entonces los datos han sido cometidos.

  5. Si es encontrado, entonces buscar los cambios en los datafiles (vía el numero SCN).

  6. ¿Cambios están reflejados en los datafiles?.

  7. Si es verdad, entonces salta.

  8. Si no, aplicar los cambios a los datafiles (Roll Forward).

  9. Si no es encontrado, entonces los datos están sin cometer, buscar los cambios en los datafiles.

  10. ¿Cambios están reflejados en los datafiles?

  11. Si no, entonces salta.

  12. Si es verdad, entonces hacer un update a los datafiles con los datos antes del cambio (Roll Back).

¿Cómo funcionan los redo log files?

Estos trabajan de manera cíclica (circular). Cuando un archivo redo log online se llena el proceso LGWR pasará al siguiente grupo de redo log file. Cuando se llena el último grupo de redo log file disponible, LGWR vuelve al primer gurpo de archivo redo log file y escribe en el, comenzando de nuevo el ciclo.

En el momento de pasar a escribir a otro redo log file se produce un punto de control (checkpoint) y la información de cada checkpoint se almacenada en el archivo de control (control file).

La figura ilustra la escritura circular del archivo de registro de rehacer. Los números al lado de cada línea indican la secuencia en la que LGWR escribe a cada archivo de registro de rehacer.

Multiplexación de archivos Redo Log file y grupos

Para proteger contra un fallo que implica al redo log file en sí , Oracle Database permite los redo log files multiplexados , lo que significa que dos o más idénticos copias de un redo log file se pueden mantener de forma automática en lugares separados.

La multiplexación se implementa mediante la creación de grupos de redo log file. Un grupo consta de un redo log file y sus copias multiplexadas (copias idénticas entre si). Cada copia idéntica se dice que es un miembro del grupo. Cada grupo de redo log file se define por un número, tal como el grupo 1 , grupo 2 , etc.

Grupos de Archivos redo log

SELECT*FROM V$LOGFILE;

SELECT*FROM V$LOG;

¿Cómo agregar archivos redo log a un grupo?.

ALTERDATABASEADD LOGFILE GROUP4(‘log3a.rdo, log3b.rdo’) size1M;

¿Cómo cambiamos el redo log group activo?

ALTERSYSTEM SWITCH LOGFILE;

¿Cómo eliminamos un redo log group?

ALTERDATABASEDROP LOGFILE GROUP1;

 
 
 

Comments


Posts Destacados
Posts Recientes
Búsqueda por Tags
Conéctate
  • Google+ Long Shadow
  • Facebook Long Shadow
  • LinkedIn Long Shadow
  • Twitter Long Shadow
bottom of page