Hi everyone,

I have a question about backup and recovery. During the recovery of the database (a data file gets corrupted for ex), the database restores the database (meaning it will roll-forward/apply all the commited changes in the logs to the data files) and then it will recover the database (meaning that it will roll-back all uncommited transactions). My question is, does Oracle roll-back all the uncomitted transactions from the data files or just erases them from the logs? If Oracle rolls back all the uncommitted transactions from the data files, why were uncommitted transactions written to data files in the first place? Thanks for your help.