When backing up datafiles into backup sets, RMAN does not back up the contents of
data blocks that have never been allocated.
However, RMAN only skips unused blocks (Blocks which do not currently contain data but they had data) if the following conditions are all met :
■ The COMPATIBLE initialization parameter is set to 10.2
■ There are currently no guaranteed restore points defined for the database
■ The datafile is locally managed
■ The datafile is being backed up to a backup set as part of a full backup or a level 0 incremental backup
■ The backup set is being created on disk.
Above means that if RMAN backing up to tape, it will backup all unused blocks (blocks which have been touched before but now are empty). In other words, backup to tape could waste space if there are many unused blocks.
Here is a demonstration to show the difference of backup between when it is sent to tape and when it is sent to disk :
Step 1: Create a new empty tablespace
Step 2 : Backup new tablespace to disk
Step 3 : Backup new tablespace to tape
Step 4 : Create a table in the new tablespace
Step 5 : Backup tablespace to disk when it has table with records
Step 6 : Backup tablespace to tape when it has table with the records
Step 7: Delete all records in table (unused blocks - Blocks with no data but had data before)
Step 8 : Backup tablespace to disk after deletion of all records in table
Step 9 : Backup tablespace to disk after deletion of all records in table
Step 10 : Checking backup size
As it is shown, Disk backup after truncate was reduced to 600K while tape backup did not change (~ 5M same before delete). This proves that unused blocks are only not backed up for disk backup. Maybe another reason to use Flash Recovery area !!!