Backup Levels: Full, Incremental, Differential
Not all backups are the same
Backing up everything every time is safe but wasteful. Backing up only changes is efficient but complex. The right strategy combines both — and understanding backup levels is the key.
Full Backup
A Full backup copies every file, regardless of whether it has changed.
| Aspect | Detail |
|---|---|
| Storage | Highest — complete copy every time |
| Speed | Slowest — reads and writes everything |
| Restore | Fastest — single backup contains all data |
| Risk | Lowest — self-contained, no dependencies |
Use for: Weekly or monthly base backups, critical systems, compliance requirements.
Incremental Backup
An Incremental backup copies only files that changed since the last backup of any level.
| Aspect | Detail |
|---|---|
| Storage | Lowest — only daily changes |
| Speed | Fastest — minimal data to read and write |
| Restore | Slowest — requires Full + all Incrementals in sequence |
| Risk | Highest — broken chain = incomplete restore |
Use for: Nightly backups between Fulls, environments with high change rates.
Example chain:
Mon: Full (100 GB)
Tue: Incremental (2 GB) — changes since Mon
Wed: Incremental (3 GB) — changes since Tue
Thu: Incremental (1 GB) — changes since Wed
Restoring Thursday requires: Full + Tue-Inc + Wed-Inc + Thu-Inc.
Differential Backup
A Differential backup copies all files that changed since the last Full backup.
| Aspect | Detail |
|---|---|
| Storage | Medium — grows daily until next Full |
| Speed | Medium — more data than Incremental, less than Full |
| Restore | Fast — requires only Full + latest Differential |
| Risk | Low — only two backups needed for restore |
Use for: Environments where restore speed matters more than storage efficiency.
Example chain:
Mon: Full (100 GB)
Tue: Differential (2 GB) — changes since Mon
Wed: Differential (5 GB) — changes since Mon (cumulative)
Thu: Differential (6 GB) — changes since Mon (cumulative)
Restoring Thursday requires: Full + Thu-Diff only.
VirtualFull Backup
A VirtualFull is a synthetic Full backup constructed from existing backups without reading from the client. Bareos creates it by combining the last Full with all subsequent Incrementals on the storage side.
| Aspect | Detail |
|---|---|
| Client load | None — built entirely on the Storage Daemon |
| Network | None — no data transfer from client |
| Storage | Full-size — but built from existing data |
| Use case | Replace weekly Fulls without impacting production |
Use for: Reducing client and network load during Full backup windows.
Which strategy should you use?
Small environments (< 10 clients)
Weekly Full + Daily Incremental
Simple, low storage overhead, acceptable restore times.
Medium environments (10-100 clients)
Monthly Full + Weekly Differential + Daily Incremental
Balance between storage, backup window, and restore speed.
Large environments (100+ clients)
Monthly VirtualFull + Daily Incremental
Minimal client impact, synthetic Fulls keep restore chains short.
How Onesimus helps
Onesimus shows your schedules visually — color-coded by backup level. The Gantt timeline makes it obvious when Fulls run, how Incrementals fill the gaps, and where your backup windows are.
The schedule visualization is available in Community. Understanding which levels are consuming storage will be part of Onesimus Pro.