En Oracle 19c, undo y redo son dos mecanismos esenciales para la gestión de la integridad de los datos y el soporte de la recuperación ante fallos. Sin embargo, cumplen funciones diferentes en los sistemas de bases de datos. A continuación, se detallan las diferencias fundamentales entre ambos:
Definición
- Undo:
- El undo data se utiliza para revertir cambios realizados por transacciones que no se han confirmado (commit). Permite deshacer transacciones y proporciona lecturas consistentes de datos, lo que significa que las transacciones pueden ver una imagen de los datos «antes» de que los cambios se aplicaran.
- Redo:
- El redo data es un registro de todos los cambios realizados en la base de datos desde el último commit. Se utiliza para aplicar cambios durante la recuperación en caso de un fallo (crash recovery) o para garantizar la durabilidad de las transacciones después de un commit.
Propósito
- Undo:
- Facilita la reversión de los cambios no confirmados.
- Permite deshacer acciones de una transacción si es necesario (por ejemplo, si una transacción falla).
- Redo:
- Garantiza que las transacciones confirmadas puedan recuperarse en caso de un fallo, asegurando que los cambios se apliquen correctamente a la base de datos.
- Utiliza los registros de redo para reejecutar operaciones que se han confirmado.
Almacenamiento
- Undo:
- El undo data se almacena en un tablespace de undo específico y se gestiona mediante la estructura de datos denominada undo segments. Cuando una transacción modifica datos, Oracle guarda una copia del estado anterior de esos datos en el undo segment.
- Redo:
- El redo data se almacena en archivos de redo log, que son independientes del espacio de undo. Cada vez que se realiza una operación de modificación de datos, el cambio se registra en un archivo de redo log para garantizar la recuperación.
Uso en Consistencia y Lectura
- Undo:
- Permite a las transacciones leer datos en un estado consistente, incluso si otras transacciones están realizando actualizaciones. Los datos son visibles en el momento en que comenzó la transacción, lo que ayuda a evitar problemas de lectura de datos inconsistentes.
- Redo:
- No afecta las lecturas. El objetivo del redo es asegurar que una vez que una transacción es confirmada, sus cambios se puedan recuperar en cualquier momento posterior, garantizando así la durabilidad de los datos.
Tiempo de Vida
- Undo:
- El undo data tiene una vida útil limitada. Se mantiene mientras sea necesario para permitir la reversión de las transacciones o para permitir lecturas consistentes. Una vez que no se necesita (por ejemplo, después de que una transacción se ha confirmado y no hay transacciones en proceso que necesiten ese estado anterior), se puede liberar.
- Redo:
- El redo data se mantiene hasta que se realiza un checkpoint, que es un punto en el tiempo en el que se escribe en el disco el estado de la base de datos. Después de un checkpoint, se pueden archivar o eliminar los registros de redo que ya se han escrito en la base de datos.

Tanto el undo como el redo son esenciales para la recuperación y la estabilidad de las transacciones en Oracle 19c.
Entender sus diferencias y cómo funcionan puede ayudarte a gestionar y asegurar tus datos de manera más efectiva.






Deja un comentario