Oracle 11, incremental backup goes wrong

backuporacle-11g-r2

Got a pretty big instance on a one-week backup cycle with an incremental (differential) strategy .. or rather, that's what it was supposed to be. Somehow the daily differentials seem to come out as cumulative!? The size of our instance means that this is a bit of a problem – daily backup window in excess of 3 hours is not acceptable at the end of the week.

Our schedule:
Once every week we do an

backup incremental level 0
  as copy tag 'sometag'
  skip readonly
  database;

and once a day

backup incremental level 1
  for recover of copy tag 'sometag'
  database plus archivelog;

We've configured block-change-tracking for the database

The problem is, that the result is a cumulative incremental backup, which means an increasing backup-window every day, with a reset in the weekends.

What are we doing wrong?

Thoughts:

  • Change Tracking is getting screwed up?
  • Strategy incompatible with
    image copies?

Best Answer

You are doing a differential incremental backup rather than cumulative, but the syntax for recover of copy tag 'sometag' indicates that you plan to incrementally update an image file backup. Phil was on the right tack with the missing RECOVER COPY OF DATABASE WITH TAG 'sometag'. Since you are not running this each incremental must be able to recover the un-updated tag 'sometag' causing it to grow each day as though CUMULATIVE were specified.

See Backup Sets and Image Copies in the Concepts Guide and see Incrementally Updating Backups in the Backup and Recovery User's Guide (11.2). If your intention was to use incrementally updated image copies you will want something more like this:

  RUN
  {
    RECOVER COPY OF DATABASE 
      WITH TAG 'incr_update';
    BACKUP 
      INCREMENTAL LEVEL 1
      FOR RECOVER OF COPY WITH TAG 'incr_update'
      DATABASE;
  }

If you didn't intend to do this, then simply remove the for recover... syntax.