ch5 Database Recovery Technique
ch5 Database Recovery Technique
ch5 Database Recovery Technique
Chapter 5:
Database Recovery Techniques
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,
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
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.
8
Database Recovery
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
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
8 Recovery Scheme/system
Deferred Update (No Undo/Redo)
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
16
Database Recovery
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
18
Database Recovery
Recovery Techniques Based on Immediate Update
Undo/No-redo Algorithm
19
Database Recovery
Recovery Techniques Based on Immediate Update
Undo/Redo Algorithm (Single-user environment)
20
Database Recovery
Shadow Paging
This recovery scheme does not require the use of a log in a
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
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
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