RMAN Backup - How does it treat empty blocks.

Document ID : KB000050652
Last Modified Date : 14/02/2018
Show Technical Document Details


The way Oracle treats empty blocks during RMAN backups has changed between Oracle 9i and Oracle 10G.

This is something Oracle controls for the most part. This is not something we are enabling or disabling in eHealth, which uses RMAN for it's eHealth binary backups.

For information;

  1. Null compression (used in Oracle versions before 10.2)
  2. Unused Block Compression (used from Oracle version 10.2)

In ORACLE 9i and before RMAN does not backup empty blocks above the high watermark which are not formatted.

This is called NULL COMPRESSION.

In Oracle 10g Release 2 RMAN does not backup unused blocks (empty blocks below the High watermark).

This new feature is called UNUSED BLOCK COMPRESSION

Further related information;

Null Compression: When backing up datafiles into backup sets, RMAN does not back up the contents of data blocks that have never been allocated. This means RMAN will never backup the blocks that are ever used.

For example: You have a tablespace having one datafile of size 100MB and out of 100MB only 50 MB is used. Then RMAN will backup only 50MB.

Unused Block Compression: From Oracle version 10.2 RMAN skips the blocks that do not currently contain data and this is called Unused Block Compression. RMAN now creates more compact backups of datafiles, by skipping datafile blocks that are not currently used to store data. No extra action is required on the part of the DBA to use this feature.

For example: You have a tablespace having one datafile of size 100MB and out of 100MB, 50MB is used by the user tables. Then user dropped a table belonging to that tablespace which was of 25MB, with Unused Block Compression only 25MB of the files is backed up. In this example if null compression is used then it would have backed up 50MB because Null Compression will consider the blocks that are formatted/ever used.

Skipping unused data blocks where possible enables RMAN to back up datafiles using less space, and can make I/O more efficient.

Unused Block Compression is done, if all of the following conditions apply:

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.

The method in use in 10G is an improvement.

eHealth 6.0, uses Oracle 9i as its embedded database. Oracle 10G is embedded in eHealth versions 6.1 and 6.2.