With the old-style online backups, you issued the ALTER TABLESPACE BEGIN BACKUP command. This froze the SCN in the datafile headers. But writes to the datafile were still allowed to take place. While you are using OS utilities to copy the datafile to the backup location, it is possible to be backing up a database block that is currently undergoing a change. All I/O is done in units called a block. You have defined your database blocksize, we'll call it 8K in this example. Your OS has its own blocksize, which is typically much smaller than your DB blocksize. For example, Windows uses 512-byte blocksizes. It is highly possible that while the OS utility is copying data 512 bytes at a time, that the 8K database block gets changed during this time. Part of the block has been changed and not yet written to the backup location while part of the block written to the backup location does not contain the changes. This is call a "fractured block" problem.
Normally, when you make a change (INSERT, UPDATE, DELETE) to data in your table, Oracle writes that change to the online redo log files. To assist with the fractured block problem, Oracle writes the entire contents of the database block to the online redo logs while the tablespace is in backup mode.
RMAN uses a different mechanism to resolve any inconsistencies that may occur during a hot backup. The first thing RMAN does is to perform I/O with the same blocksize that the database uses. The second thing RMAN does it to use an SCN in the block for consistency purposes, rather than a single SCN in the datafile for all of the datafile's blocks. So RMAN backups do not suffer from the fractured block problem like the old-style hot backups.
Dig Deeper on Oracle database backup and recovery
Related Q&A from Brian Peasland
Oracle expert Brian Peasland answers one reader's question about common pitfalls when connecting Oracle to outside programs. Continue Reading
One reader asks expert Brian Peasland a question about datafile sizes with the Oracle RMAN duplicate 10g command. Continue Reading
Managing parent table-child table relations in Oracle SQL environments is key to efficient programming. Continue Reading
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.