Introducción al REDO LOG
Los REDO LOG guardan todos los cambios que se van produciendo dentro de la base de datos y consta como mínimo de dos archivos. Lo normal es que sean 3, aunque podemos tener más incluso, pero nunca menos de dos.
Estos archivos REDO LOG van a estar asociados a una instancia de la base de datos, permitiendo que si existe algún problema que pudiera atentar contra la integridad de los datos, podamos hacer BACKUPS, o sea, nos permite recuperar todos los cambios y transacciónes que se han ido produciendo dentro de la base de datos.
El contenido de los ficheros REDO LOG se denominan REDO RECORDS, también llamados REDO ENTRY, y se componen de un grupo de CHANGE VECTORS, siendo cada uno de estos últimos una descripción única de los cambios producidos en un bloque. O sea, un REDO ENTRY es un conjunto de CHANGE VECTORS, que estarán identificando los cambios producidos en distintos bloques, dentro de una transacción.
Los REDO ENTRIES registran los datos para reconstruir todos los cambios realizados en la base de datos, incluyendo los segmentos de ROLLBACK.
Por ejemplo: Pensemos que se cae la instancia por algún motivo, entonces al arrancarla nuevamente, Oracle lee en el fichero de control que la base de datos no se ha cerrado correctamente. Entonces Oracle toma lo que tiene en los REDO LOG y recupera la base de datos.
La recuperación se trata de dos cosas, los datos que estaban validados, los guarda definitivamente en los ficheros de datos. En cuanto a los cambios que no se han validado, pues hace un rollback. Es por eso que también guarda los segmentos del UNDO. Los REDO RECORDS se graban de manera circular en el REDO LOG buffer de la SGA y se escriben a uno de los REDO LOG files por el LOG WRITER (LGWR). ¿Cómo funcionan los redo log?
- El LOG WRITER (LGWR), va grabando de memoria a disco, en solo REDO LOG. En un momento determinado sólo tenemos funcionando un fichero REDO LOG, que es el que se denomina CURRENT, y el resto está INACTIVE.
- Cuando se llena ese fichero REDO LOG 1, se produce entonces un LOG SWITCH, y un CHECKPOINT.
- El CHECKPOINT lo que hace es guardar en el fichero de datos, lo que tengamos en el BUFFER de datos, o sea, lo que tengamos en el REDO LOG 1.
- Cuando se produce el LOG SWITCH se cambia de REDO LOG, digamos al REDO LOG 2 (CURRENT), a su vez, el REDO LOG 1 se mantiene activo mientras se sincroniza el BUFFER de memoria con el fichero de datos, haciendo que todos los cambios que tengamos en el REDO LOG 1, ya estén grabados en los ficheros de datos. Al cambiar al REDO LOG 2, y guardar los cambios en el fichero de datos, entonces ya no será necesario el contenido del REDO LOG 1.
- Cuando se llena el REDO LOG 2, pues otra vez se lanza un LOG SWITCH y un CH
intro redo log