How does RMAN perform hot backups without shutting down DB?
It's not clear to me how Oracle RMAN does a hot backup without shutting down
the DB (to synchronize DB and Archivelog).
Whenever you back up datafiles, you have to do one of two things. You can shut down the database
and then back up the datafiles. This option of a cold backup is a safe option because the datafiles
will not be modified while you are backing them up. The second option is a hot backup. With a hot
backup, it is likely that the datafile will be modified in the middle of backing it up. When this
happens, the datafile is said to be "inconsistent." You need a mechanism to resolve that
inconsistency. Prior to RMAN, this mechanism was to put the tablespaces in BACKUP mode. The
database froze the SCN (System Change Number) in the datafile header. Each block of data also has a
SCN noting when that block's contents last changed. On restore, if a block's SCN is higher than the
header's SCN, then the database needs to resolve any inconsistencies using the archived redo logs.
The system will go through the archived redo logs and ensure all blocks are consistent with a point
RMAN is not that much different. It uses SCNs on the block level and the archived redo logs to
resolve any inconsistencies in the datafiles from a hot backup. What RMAN does not require is to
put the tablespace in BACKUP mode, thus freezing the SCN in the header. Rather, RMAN keeps this
information in either your control files or in the RMAN repository (i.e., Recovery Catalog).
This was first published in June 2004