Keeping Recovery Points

Product version: 10.5

Last modified: 3 March 2022

Question

How does the retention of recovery points work?

Answer

NAKIVO Backup & Replication provides the Grand-Father-Son (GFS) retention scheme. This scheme allows you to save storage space while retaining the recovery points for any period that you need. The following options are available:

  1. Retain the specified number of last recovery points: After the specified number of recovery points in the backup repository is exceeded, the oldest recovery point is deleted.

  2. Retain one recovery point for the specified period of time: One recovery point is stored for the specified period of time, after which this recovery point is deleted.

  3. Make new recovery points immutable: This option sets an immutability flag on new recovery points, preventing their deletion or modification for a specified period of time. 

Note
You can manually configure the recovery points retention by viewing the backup details on the Settings > Repositories page. Select one of the following options:

  • Use job retention: This option enables a job-specific retention policy for the recovery point.

  • Keep forever: This option is automatically enabled if the job does not have a schedule. You can also select this option manually.

  • Protect until: This option allows you to manually select a specific date until which the recovery point will be protected. Afterward, the rules of the job retention policy automatically apply to this recovery point.

Note that manually protected recovery points are separate from those protected by the job retention policy.

Also note that immutable recovery points cannot be removed by retention policies for the specified period of immutability. 

Example

Let’s say you have scheduled a backup job to run every hour from Monday to Friday, and you have configured the following retention options:

  • Retain the 10 last recovery points;

  • Retain one recovery point per day for 3 days;

  • Retain one recovery point per week for 2 weeks;

  • Retain one recovery point per month for 6 months;

  • Retain one recovery point per year for 2 years; and

  • Make new recovery points immutable for 0 days.

Note that the "immutable for" option has been set to 0 for simplicity—in short, all recovery points are kept for the specified number of immutability days before other retention settings are taken into account. Here's how recovery point retention would look like with the above example for the two types of backup repositories:

Forever-incremental Repository

Starting the following Monday, the backup job will run every hour and a new recovery point will be created in the backup repository after each job run. The following will happen with the recovery points:

  1. Once recovery point 11 is created, the first recovery point (the oldest) will be removed. So, the total number of last recovery points always remains 10. With each new job run, one new recovery point is created and the oldest one is deleted. 

  2. The last recovery point created on that Monday (let's say at 11:00 PM) will be considered the “recovery point of the day”. This recovery point will be stored for 3 days and deleted when the fourth daily recovery point is created.

  3. After the end of the first week since the first backup, the last recovery point of the week (let's say Friday 11:00 PM) is stored as the “recovery point of the week”. It will be stored for 2 weeks and deleted when the third weekly recovery point is created.

The same process applies to monthly and yearly recovery points. Thus, with the above ruleset, the maximum number of recovery points that may exist at one time is 23:

  • 10 last "regular" recovery points,

  • 3 daily recovery points,

  • 2 weekly recovery points,

  • 6 monthly recovery points,

  • and 2 yearly recovery points.

Incremental-with-full-backups Repository

Let's say that, in addition to the sample retention settings in the Example above, you have set "Create full backup" in Job options to "Job runs #: 4". This means that, given the job runs once an hour, a full recovery point will be created once every once every 4 hours. The other 3 job runs in that time frame will create Incremental recovery points, which will only get removed according to the following scenarios:

  • The whole chain of recovery points, including the Full one, is removed provided that:

    1. A new Full recovery point is created.

    2. The whole chain of recovery points no longer falls within your retention period.

    3. An older Full recovery point is not assigned to a recovery point of the week, month, or year.

  • The whole chain of recovery points, excluding the Full one, is removed provided that:

    1. A new Full recovery point is created.

    2. All the recovery points, except for the Full recovery point, in the chain up to the following full recovery point no longer fall within your retention period.

    3. The Full recovery point is assigned to a recovery point of the week, month, or year.

Starting the following Monday, the backup job will run every hour and a new Full recovery point will be created in the backup repository once every 4 runs. The following then occurs:

  1. As long as the oldest Full recovery point still falls under the retention period, the chain of Incremental recovery points (in this example, 3) leading up to the newest Full recovery point will be kept. Once the 11th recovery point is created (not counting designated daily/weekly/monthly/yearly recovery points), the first Full recovery point and its chain of Incremental recovery points are deleted.

  2. The last recovery point created on any day (let's say 20:00 PM) will be considered the “Full recovery point of the day”. This Full recovery point will be stored for 3 days and deleted when the fourth daily recovery point is created.

  3. After the end of the first week since the first backup, the last Full recovery point of the week (let's say Friday 20:00 PM) is stored as the “Full recovery point of the week”. It will be stored for 2 weeks and deleted when the third weekly Full recovery point is created.

The same process applies to monthly and yearly recovery points. Thus, with the above ruleset, the maximum number of recovery points that may exist at one time is 23:

  • 10 last recovery points (mix of Incremental and Full),

  • 3 daily Full recovery points,

  • 2 weekly Full recovery points,

  • 6 monthly Full recovery points,

  • 2 yearly Full recovery points.

Note
Since chains of Incremental recovery points are only deleted if the respective Full recovery point is deleted, the number of recovery points in a repository may temporarily exceed retention policy limits.

Viewing Types of Recovery Points

You can view which type of recovery point (incremental or full) is stored in the repository in one of the following ways:

  • On the Backup page of the Recovery Job Wizard.

  • By viewing the backup details on the Settings > Repositories page.