I believe "crash recovery" means all volatile buffers and non-flushed disk pages are lost, as well as, depending on your failure model, the total contents of any physical disk page in the process of being written at the time of the crash.
In other words, the software program/server has crashed but persistent storage (disks etc.) is still intact. So anything that was in memory is lost, and anything that was being written to disk at the time of crash may have been lost.
"Media recovery" means that we lost some part of the checkpoint, but we have archived versions of the log, and some offline copy of an old checkpoint.
"Media failure" implies loss of persistent storage - maybe a disk crash.
I suppose that media failure could result in loss of logs and/or loss of database files. So it implies that either data files or logs or both may need to be restored from backups.
If you lose your logs (and there is a crash), AFAIK, there is no hope to recover information past the first loss, assuming it is after the most recent checkpoint.
Of course.
Also a desirable feature is "point in time recovery" against logical corruption - i.e., some angry/confused user started deleting all the customer records Monday morning. Can I start with an old checkpoint and run the recovery log until Sunday night to get some consistent state from around that time back? (This is usually straightforward to implement.)
I don't think that Derby currently allows you to arbitrarily rollback to a point in time.
Regards
Dibyendu
