Database Recovery Techniques in DBMS
• Database Systems like any other computer system, are
subject to failures but the data stored in them must be
available as and when required.
• When a database fails it must possess the facilities for
fast recovery.
• It must also have atomicity i.e. either transactions are
completed successfully and committed (the effect is
recorded permanently in the database) or the transaction
should have no effect on the database.
Types of Recovery Techniques in DBMS
• Database recovery techniques are used in database
management systems (DBMS) to restore a database to a
consistent state after a failure or error has occurred. The
main goal of recovery techniques is to ensure data
integrity and consistency and prevent data loss.
• Rollback/Undo Recovery Technique
• Commit/Redo Recovery Technique
• CheckPoint Recovery Technique
Rollback/Undo Recovery Technique
• The rollback/undo recovery technique is based on the
principle of backing out or undoing the effects of a transaction
that has not been completed successfully due to a system
failure or error.
• This technique is accomplished by undoing the changes
made by the transaction using the log records stored in the
transaction log.
• The transaction log contains a record of all the transactions
that have been performed on the database. The system uses
the log records to undo the changes made by the failed
transaction and restore the database to its previous state.
Commit/Redo Recovery Technique
• The commit/redo recovery technique is based on the
principle of reapplying the changes made by a transaction
that has been completed successfully to the database.
• This technique is accomplished by using the log records
stored in the transaction log to redo the changes made by
the transaction that was in progress at the time of the
failure or error.
• The system uses the log records to reapply the changes
made by the transaction and restore the database to its
most recent consistent state.
Checkpoint Recovery Technique
• Checkpoint Recoveryis a technique used to improve data
integrity and system stability, especially in databases and
distributed systems.
• It entails preserving the system’s state at regular intervals,
known as checkpoints, at which all ongoing transactions
are either completed or not initiated.
• This saved state, which includes memory and CPU
registers, is kept in stable, non-volatile storage so that it
can withstand system crashes.
• In the event of a breakdown, the system can be restored
to the most recent checkpoint, which reduces data loss
and downtime.
• The frequency of checkpoint formation is carefully
regulated to decrease system overhead while ensuring
that recent data may be restored quickly.
Database Systems
• There are both automatic and non-automatic ways for
both, backing up data and recovery from any failure
situations.
• The techniques used to recover lost data due to system
crashes, transaction errors, viruses, catastrophic failure,
incorrect command execution, etc. are database recovery
techniques.
• So to prevent data loss recovery techniques based on
deferred updates and immediate updates or backing up
data can be used.
• Recovery techniques are heavily dependent upon the
existence of a special file known as a system log. It
contains information about the start and end of each
transaction and any updates which occur during the
transaction.
• The log keeps track of all transaction operations that
affect the values of database items. This information is
needed to recover from transaction failure.
• The log is kept on disk start_transaction(T): This log
entry records that transaction T starts the execution.
• read_item(T, X): This log entry records that transaction T
reads the value of database item X.
• write_item(T, X, old_value, new_value): This log entry
records that transaction T changes the value of the
database item X from old_value to new_value. The old
value is sometimes known as a before an image of X, and
the new value is known as an afterimage of X.
• commit(T): This log entry records that transaction T has
completed all accesses to the database successfully and
its effect can be committed (recorded permanently) to the
database.
• abort(T): This records that transaction T has been
aborted.
• checkpoint: A checkpoint is a mechanism where all the
previous logs are removed from the system and stored
permanently in a storage disk.
• Checkpoint declares a point before which the DBMS was
in a consistent state, and all the transactions were
committed.
• A transaction T reaches its commit point when all its
operations that access the database have been executed
successfully i.e. the transaction has reached the point at
which it will not abort (terminate without completing).
Once committed, the transaction is permanently recorded
in the database.
• Commitment always involves writing a commit entry to the
log and writing the log to disk. At the time of a system
crash, the item is searched back in the log for all
transactions T that have written a start_transaction(T)
entry into the log but have not written a commit(T) entry
yet; these transactions may have to be rolled back to
undo their effect on the database during the recovery
process.