0% found this document useful (0 votes)
106 views4 pages

DBMS Recovery Techniques Guide

Database systems require effective recovery techniques to ensure data integrity and availability after failures. Key recovery techniques include Rollback/Undo, Commit/Redo, and Checkpoint Recovery, each serving to restore the database to a consistent state. These techniques rely on a transaction log that records all operations, enabling the system to undo or redo changes as necessary during recovery.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
106 views4 pages

DBMS Recovery Techniques Guide

Database systems require effective recovery techniques to ensure data integrity and availability after failures. Key recovery techniques include Rollback/Undo, Commit/Redo, and Checkpoint Recovery, each serving to restore the database to a consistent state. These techniques rely on a transaction log that records all operations, enabling the system to undo or redo changes as necessary during recovery.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

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.

Recovery techniques used in DBMS are classifies as

• 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

It is 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.

• Undoing: If a transaction crashes, then the recovery manager may undo transactions i.e. reverse
the operations of a transaction. This involves examining a transaction for the log entry
write_item(T, x, old_value, new_value) and setting the value of item x in the database to old-value.
There are two major techniques for recovery from non-catastrophic transaction failures: deferred
updates and immediate updates.

• Deferred Update: This technique does not physically update the database on disk until a
transaction has reached its commit point. Before reaching commit, all transaction updates are
recorded in the local transaction workspace. If a transaction fails before reaching its commit point,
it will not have changed the database in any way so UNDO is not needed. It may be necessary to
REDO the effect of the operations that are recorded in the local transaction workspace, because
their effect may not yet have been written in the database. Hence, a deferred update is also known
as the No-undo/redo algorithm.

• Immediate Update: In the immediate update, the database may be updated by some operations of
a transaction before the transaction reaches its commit point. However, these operations are
recorded in a log on disk before they are applied to the database, making recovery still possible. If
a transaction fails to reach its commit point, the effect of its operation must be undone i.e. the
transaction must be rolled back hence we require both undo and redo. This technique is known
as undo/redo algorithm.

• Caching/Buffering: In this one or more disk pages that include data items to be updated are cached
into main memory buffers and then updated in memory before being written back to disk. A
collection of in-memory buffers called the DBMS cache is kept under the control of DBMS for
holding these buffers. A directory is used to keep track of which database items are in the buffer. A
dirty bit is associated with each buffer, which is 0 if the buffer is not modified else 1 if modified.

• Shadow Paging: It provides atomicity and durability. A directory with n entries is constructed,
where the ith entry points to the ith database page on the link. When a transaction began executing
the current directory is copied into a shadow directory. When a page is to be modified, a shadow
page is allocated in which changes are made and when it is ready to become durable, all pages that
refer to the original are updated to refer new replacement page.

• Backward Recovery: The term ” Rollback ” and ” UNDO ” can also refer to backward
recovery. When a backup of the data is not available and previous modifications need to be
undone, this technique can be helpful. With the backward recovery method, unused modifications
are removed and the database is returned to its prior condition. All adjustments made during the
previous traction are reversed during the backward recovery. In other words, it reprocesses valid
transactions and undoes the erroneous database updates.
• Forward Recovery: “ Roll forward “and ” REDO ” refers to forwarding recovery. When a
database needs to be updated with all changes verified, this forward recovery technique is helpful.
Some failed transactions in this database are applied to the database to roll those modifications
forward. In other words, the database is restored using preserved data and valid transactions
counted by their past saves.

You might also like