En Oracle Database, varios procesos de fondo desempeñan roles críticos en la gestión y recuperación de la base de datos. Entre estos procesos, CKPT (Checkpoint) y LGWR (Log Writer) son de particular importancia en el Instance Recovery. A continuación, te explico cómo intervienen en este proceso:

CKPT (Checkpoint)

Función del Proceso CKPT:

  • El proceso CKPT se encarga de los checkpoints en la base de datos, que son esenciales para la sincronización entre los datos en memoria y los datos en disco.
  • Su función principal es asegurar que todos los cambios realizados en los buffers de datos se escriban en los archivos de datos, creando un punto de referencia que Oracle puede utilizar en caso de un fallo.
  • Actualización del SCN (System Change Number): CKPT actualiza el SCN en los headers de archivos de datos, lo que Oracle utiliza para evaluar el estado de los datos y la coherencia de la base de datos en caso de fallo, así como para gestionar redo logs durante el proceso de instance recovery.
  • Coherencia de la Base de Datos: CKPT ayuda a mantener sincronizados los datos con los redo logs al escribir en los headers. Si hay un fallo, Oracle puede identificar hasta dónde se han escrito los datos y qué registros de redo necesitan ser aplicados.
  • Estructura de Datos de Recuperación: Además del SCN, se puede actualizar información de recuperación en los headers, permitiendo a Oracle hacer una recuperación rápida y eficiente.

Para saber más del CKPT ve al siguiente link:

Intervención en Instance Recovery:

  • Reducción del Tiempo de Recuperación: Durante un fallo de la instancia, CKPT ayuda a minimizar el tiempo de recuperación al limitar la cantidad de redo logs que deben procesarse. Esto se logra porque, después de un checkpoint, Oracle solo necesita aplicar los registros de redo generados desde el último SCN (System Change Number) registrado.
  • Actualización del Archivo de Control: Cada vez que se ejecuta un checkpoint, CKPT actualiza el archivo de control con el SCN más reciente. Esto le permite a Oracle identificar rápidamente hasta dónde se han aplicado los cambios en los redo logs durante el proceso de recuperación.
  • Consistencia de Datos: Al ejecutar un checkpoint, se asegura que la base de datos esté en un estado coherente. En el caso de un fallo, Oracle utiliza el SCN del último checkpoint para determinar qué cambios son relevantes para la recuperación, asegurando que los cambios no confirmados se deshagan adecuadamente.

LGWR (Log Writer)

Función del Proceso LGWR:

  • LGWR es el proceso responsable de escribir de manera eficiente los registros de redo en los archivos de redo logs (Online Redo Log).
  • Esencialmente, se asegura de que el histórico de cambios del sistema se mantenga disponible en disco para su aplicación en caso de un proceso de recuperación.

Para saber más del LGWR ve al siguiente link:

Intervención en Instance Recovery:

  • Escritura de Registros de Redo: Cuando Oracle realiza una operación que cambia el estado de la base de datos, LGWR escribe inmediatamente los registros de redo correspondientes a esos cambios en la memoria. Esto es fundamental porque estos registros son lo que permite aplicar las modificaciones durante un recovery.
  • Activación por Eventos: LGWR se activa por eventos como el llenado de buffers de redo, la confirmación de una transacción o la solicitud de un checkpoint. Esto garantiza que los registros de redo se mantengan al día con respecto a las transacciones que han ocurrido.
  • Interacción con CKPT: LGWR trabaja en conjunto con el proceso CKPT. Cuando se activa un checkpoint, LGWR se asegura de que todos los registros de redo en memoria se escriban en disco, lo que significa que hay un respaldo completo en los archivos de redo y datos antes de que se considere el checkpoint como completo.

Resumen del Proceso de Instance Recovery

Durante un Instance Recovery, los procesos de CKPT y LGWR cooperan de la siguiente manera:

  1. Fallo de la Instancia: Cuando ocurre un fallo, se cierra abruptamente la instancia.
  2. Reinicio de Oracle: Al reiniciar, Oracle accede al archivo de control para determinar el último SCN grabado por el CKPT.
  3. Aplicación de Redo Logs: Oracle aplicará los registros de redo en el orden necesario desde el último checkpoint hasta el punto donde el sistema falló. Aquí es donde los registros escritos por LGWR son fundamentales.
  4. Undo de Cambios No Confirmados: Las transacciones que no se completaron (aquellas que no lograron ser confirmadas antes del fallo) serán deshechas usando información de los segmentos de undo.
  5. Finalización de la Recuperación: Al finalizar, la base de datos se establece en un estado coherente, lista para operar nuevamente.

Si tienes más preguntas sobre estos procesos o su funcionamiento, ¡no dudes en preguntar!

Deja un comentario

Tendencias