Databases handle transactions. That is their primary purpose in life. In some situations, it may be necessary to undo, or reverse the effects of a transaction. This is called "rolling back." When recovering a database, it may be necessary to redo, or replay the effects of a transaction. This is called "rolling forward."
Let's say that you took a backup of your database at noon on Monday. At noon on Wednesday, the disk device holding your database completely dies. Once you have a new disk unit, you can restore the contents of your database to that disk device. But when you restore, the database only holds those transactions that were completed since that Monday at noon (when you took the backup). If you have archived your online redo logs, then you can use these archived redo logs to roll forward all transactions completed in the 48 hours between your backup and your database crash. This is the recovery process, or the process of rolling forward.
Unfortunately, when the disk device died, there were active transactions that did not complete. In order to complete the recovery process after rolling forward, the database needs to rollback those transactions that did not commit.
This was first published in September 2004