Recovery Techniques

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 10

CHAPTER 5

Recovery Techniques
Recovery Concepts
I. The Purpose of Database Recovery:
 To bring the database into the last consistent state, which existed prior
to the failure.
 To protect transaction properties (Atomicity & Durability).
 The recovery manager of a DBMS is responsible to ensure
 Atomicity by undoing the action of transaction that do not
commit
 Durability by making sure that all actions of committed
transaction survive system crash.

II. Types of Failure


- The database may become unavailable for use due to:
• Transaction failure: Transactions may fail because of incorrect
input, deadlock.
• System failure: System may fail because of addressing error,
application error, operating system fault, RAM failure, etc.
• Media failure: Disk head crash, power disruption, etc.
2
Recovery Concepts …
 Recovery from transaction failures usually means that the database is restored
to the most recent consistent state just before the time of failure.
 To recover from system failure, the system keeps information about the
change in the system log.
 Strategy for recovery may be summarized as :
 Recovery from catastrophic(terrible)
 If there is extensive(general) damage to the wide portion of the
database
 This method restore a past copy of the database from the backup
storage.
 Recovery from non-catastrophic failure

 When the database is not physically damaged but has become


inconsistent
 The strategy uses undoing and redoing some operations in order to
restore to a consistent state.
3
Recovery Concepts …
 For instance,
 If failure occurs between commit and database buffers being flushed
to secondary storage then, to ensure durability, recovery manager has
to redo (roll forward) transaction’s updates.
 If transaction had not committed at failure time, recovery manager
has to undo (rollback) any effects of that transaction for atomicity.
Fig 2: status of
transactions at
the time of
system fails

– DBMS starts at time t0, but fails at time tf and tc is the last check point.
– T1 and T6 have to be undone.
– T2 and T3, no need of redo or undone
4

Recovery Concepts …
III. Data Caching
 Data items to be modified are first stored into database cache
by the Cache Manager (CM) and after modification they are
flushed (written) to the disk
 When DBMS request for read/write operation on some item
 It checks the requested data item is in the cache or not
 If it is not, the appropriate disk block are copied to the
cache.
 If the cache is already full, some buffer replacement policy
can be used. Like
 Least recent used (LRU)
 FIFO
 While replacing buffers, first of all the updated value on that
buffer should be saved on the appropriate block in the
database 5
Recovery Concepts …
Two main strategies can be employed when flushing a
modified buffer back to disk.
i. Shadowing update:
 The modified version of a data item does not overwrite its
disk copy but is written at a separate disk location.
 Thus the old value ( before image BFIM) and the new value
(AFIM) are kept in the disk
ii. In-place updating: The disk version of the data item is
overwritten by the cache version.

6
Recovery Concepts …
 Standard Recovery Terminology
 Possible ways for flushing database cache to database disk:
i. No-Steal: Cache cannot be flushed before transaction commit.
ii. Steal: Cache can be flushed before transaction commits
iii. Force: if all Cache updates are immediately flushed (forced) to
disk when a transaction commits----- force writing
iv. No-Force: if Cached are flushed to a disk when the need arise
after a committed transaction

 These give rise to four different ways for handling recovery:


 Steal/No-Force (Undo/Redo)
 Steal/Force (Undo/No-redo)
 No-Steal/No-Force (No-undo/Redo)
 No-Steal/Force (No-undo/No-redo)

7
Recovery Concepts …
VI. Check pointing
 Log file or record file is used to recover failed DB but we may not know how
far back in the log to search.
 Thus, Checkpoint is a Point of synchronization between database and log
file.
 Time to time (randomly or under some criteria) the database flushes its buffer
to database disk to minimize the task of recovery.
 When failure occurs, redo all transactions that committed since the
checkpoint and undo all transactions active at time of crash.
 In previous example , with checkpoint at time tc, changes made by T2 and
T3 have been written to secondary storage. Thus: only redo T4 and T5, undo
transactions T1 and T6.
 The following steps defines a checkpoint operation:
i. Suspend execution of transactions temporarily.
ii. Force write modified buffer data to disk.
iii. Write a [checkpoint] record to the log, save the log to disk.
iv. Resume normal transaction execution.
8
Recovery Concepts …
VII. Transaction Roll-Back(Undo) and Roll-Forward(Redo)
 If a transaction fails for whatever reason after updating the database, it may
be necessary to roll back the transaction.
 To maintain such cases, a transaction’s operations are redone or undone.
 Undo: Restore all BFIMs on to disk (Remove all AFIMs).
 Redo: Restore all AFIMs on to disk.
 Database recovery is achieved either by performing only Undos or only
Redos or by a combination of the two. These operations are recorded in the
log as they happen.
 If a transaction T is rolled back, any transaction S that has, in the interim,
read the value of some data item X written by T must also be rolled back.
 Similarly, once S is rolled back, any transaction R that has read the value of
some data item Y written by S must also be rolled back, and so on.
 This phenomenon is called cascading rollback

9
Thank You

Any Question???

10

You might also like