Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

ch5 Database Recovery Technique

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 27

Advanced Database systems

Chapter 5:
Database Recovery Techniques

Prepared by: Bizuayehu S. (MSc. In Information Technology)


2023
Assosa, Ethiopia

1
Outline
Databases Recovery
1. Purpose of Database Recovery
2. Types of Failure
3 . Transaction Log
4 . Data Updates
5. Data Caching
6 . Transaction Roll-back (Undo) and Roll-Forward
7 . Check pointing
8 . Recovery schemes
9. Recovery in Multidatabase System

2
Database Recovery
1 Purpose of Database Recovery
 To bring the database into the last consistent state,

which existed prior to the failure.


 To preserve transaction properties (Atomicity,

Consistency, Isolation and Durability).


 Example:

 If the system crashes before a fund transfer

transaction completes its execution, then either one or


both accounts may have incorrect value.
 Thus, the database must be restored to the state

before the transaction modified any of the accounts.

3
Database Recovery
2 Types of Failure
 The database may become unavailable for use due to

Transaction failure: Transactions may fail because
of incorrect input, deadlock, incorrect
synchronization.

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.

4
Database Recovery
3 Transaction Log
 For recovery from any type of failure data values prior to
modification (BFIM - BeFore Image) and the new value after
modification (AFIM – AFter Image) are required.
 These values and other information is stored in a sequential
file called Transaction log. A sample log is given below.

5
Database Recovery
4 Data Update
 Immediate Update: As soon as a data item is modified in cache,
the disk copy is updated.
 allows updates of an uncommitted transaction to be made to the
buffer, or the disk itself, before the transaction commits
 Deferred Update: All modified data items in the cache is written
either after a transaction ends its execution or after a fixed number
of transactions have completed their execution.
 performs updates to buffer/disk only at the time of transaction
commit.
 Shadow update: The modified version of a data item does not
overwrite its disk copy but is written at a separate disk location.
 In-place update: The disk version of the data item is overwritten by
the cache version.

6
Database Recovery
5 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.

7
Database Recovery
6 Transaction Roll-back (Undo) and Roll-Forward
(Redo)
 To maintain atomicity, 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.

8
Database Recovery

The read and


write operations
of three
transactions

9
Database Recovery
System log at the time
of crash

Slide 19- 10
Database Recovery
Write-Ahead Logging
 When in-place update (immediate or deferred) is used

then log is necessary for recovery and it must be available


to recovery manager. This is achieved by Write-Ahead
Logging (WAL) protocol. WAL states that
 For Undo: Before a data item’s AFIM is flushed to the
database disk (overwriting the BFIM) its BFIM must be
written to the log and the log must be saved on a stable
store (log disk).
 For Redo: Before a transaction executes its commit
operation, all its AFIMs must be written to the log and the
log must be saved on a stable store.

11
Database Recovery
7 Check pointing
 Randomly or under some criteria, the database flushes its
buffer to database disk to minimize the task of recovery.
The following steps defines a checkpoint operation:
1. Suspend execution of transactions temporarily.
2. Force write modified buffer data to disk.
3. Write a [checkpoint] record to the log, save the log to disk.
4. Resume normal transaction execution.
 During recovery redo or undo is required to transactions
appearing after [checkpoint] record.

12
Database Recovery

Possible ways for flushing database cache to database disk:


Steal/No-Steal and Force/No-Force
1. Steal: Cache can be flushed before transaction commits.
 It avoids the need for a very large buffer space to store updated pages in
memory
2. No-Steal: Cache cannot be flushed before transaction commit.
3. Force: Cache is immediately flushed (forced) to disk(All pages
updated by a transaction are immediately written to disk when
the transaction commits).
4. No-Force: An updated page of a committed transaction may still
be in the buffer when another transaction needs to update it.
 This eliminate the I/O cost to read that page again from disk
 These give rise to four different ways for handling recovery:
 Steal/No-Force (Undo/Redo)
 Steal/Force (Undo/No-redo)
 No-Steal/No-Force (Redo/No-undo)
 No-Steal/Force (No-undo/No-redo)
Slide 19- 13
Database Recovery

8 Recovery Scheme/system
 Deferred Update (No Undo/Redo)

 The data update goes as follows:

 A set of transactions record their updates in the log.


 At commit point under WAL scheme, these updates are saved
on database disk.
 After reboot from a failure the log is used to redo all the
transactions affected by this failure. No undo is required
because no AFIM is flushed to the disk before a transaction
commits.

14
Database Recovery

An example of
recovery using
deferred update in a
single user
environment
15
Database Recovery
Deferred Update with concurrent users
 This environment requires some concurrency control

mechanism to guarantee isolation property of


transactions.
 In the system recovery, transactions which were recorded
in the log after the last checkpoint were redone.
 The recovery manager may scan some of the
transactions recorded before the checkpoint to get the
AFIMs.

16
Database Recovery

An Example of recovery using deferred update with concurrent transaction

17
Database Recovery
Deferred Update with concurrent users
 Two tables are required for implementing this protocol:
 Active table: All active transactions are entered in this

table.
 Commit table: Transactions to be committed are

entered in this table.

 During recovery, all transactions of the commit table are


redone and all transactions of active tables are ignored
since none of their AFIMs reached the database..

18
Database Recovery
Recovery Techniques Based on Immediate Update
 Undo/No-redo Algorithm

 In this algorithm AFIMs of a transaction are


flushed to the database disk under WAL before it
commits.
 For this reason the recovery manager undoes all
transactions during recovery.
 No transaction is redone.

19
Database Recovery
Recovery Techniques Based on Immediate Update
 Undo/Redo Algorithm (Single-user environment)

 Recovery schemes of this category apply undo and


also redo for recovery.
 In a single-user environment no concurrency control
is required but a log is maintained under WAL.
 Note that at any time there will be one transaction in
the system and it will be either in the commit table
or in the active table.
 The recovery manager performs:
 Undo of a transaction if it is in the active table.
 Redo of a transaction if it is in the commit table.

20
Database Recovery
Shadow Paging
 This recovery scheme does not require the use of a log in a

single user environment. The AFIM does not overwrite its


BFIM but recorded at another place on the disk. Thus, at
any time a data item has AFIM and BFIM (Shadow copy of
the data item) at two different places on the disk.

X Y
X' Y'

Database
X and Y: Shadow copies of data items
X' and Y': Current copies of data items
21
Database Recovery
Recovery in multidatabase system
 A multidatabase system is a special distributed database system
where one node may be running relational database system under
UNIX, another may be running object-oriented system under
Windows and so on.
 A transaction may run in a distributed fashion at multiple nodes.
 In this execution scenario, the transaction commits only when all
these multiple nodes agree to commit individually the part of the
transaction they were executing.
 This commit scheme is referred to as “two-phase commit” (2PC).
 If any one of these nodes fails or cannot commit the part of the

transaction, then the transaction is aborted.


 Each node recovers the transaction under its own recovery protocol.

22
Recovery in multidatabase system(cont…)
 To maintain the atomicity of multi_database transaction(MDT) ,
it is necessary to have a two level recovery mechanism.
 A global recovery manager or coordinator is needed to
maintain information needed for recovery
 The coordinator usually follows a Two-phase commit protocol
which can be explained as follows:
 Phase1: when all participating databases signal the coordinator
that the part of the MDT involving each has concluded, the
coordinator sends a “prepare for commit” message to each
participant to get ready for committing the transaction
 Each participating DB receiving that message will force write log
records to disk and send “ready to commit” or “OK” signal to the
coordinator . If the coordinator does not receive reply from a DB
within certain time out interval, it assumes a “not ok” response
23
Recovery in multidatabase system(cont…)
 Phase 2:If all participating databases reply ok, the
transaction is successful and the coordinator sends a
commit signal to the participating DBs
 Because all the local effects of the transaction and

information needed for local recovery is recorded in the


logs of participating DBs, recovery from failure is now
possible.
 Each participating DB completes transaction commit by

writing a [commit] for the transaction in the log


 If one or more of the participating DB or the coordinator

have a “not OK” response, the T has failed and the


coordinator sends a message to rollback or Undo the
local effect of the transaction to each participating DB
24
Exercise

 Consider the log records shown on the next slide by transactions T1,
T2, T3 and T4 with initial values of B=15, C=50, D=40 and E=25.
Using deferred update, show the final values of B, C, D and E after
recovery from failure if the crash occurred after the indicated point

B C D E
15 50 40 25

25
Initial values
Continued …
B C D E
15 50 40 25
[Start_transaction,T1]
[write_item,T1,B,12]
[write_item,T1,D,10]
[commit T1] Final values after recovery
[checkpoint]
[Start_transaction,T3] B C D E
[write_item,T3,E,30] ? ? ? ?
[commit T3]
[Start_transaction,T4]
[write_item,T4,B,18]
[commit T4]
[Start_transaction,T2]
Crash 26
Thank you

27

You might also like