Only use full backups as base for differential backups
- Langage dominant
- Python
- Étoiles
- 518
- Forks
- 57
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
### Each diff backup should save all changes that have occurred since the last full backup.
`Full → Inc₁ → Inc₂ → Diff (all changes after Full) → Inc₃ → Diff (again all changes after Full)`
libvirtnbdbackup/virt/checkpoints.py
```
if args.level == "diff":
parentCheckpoint = checkpoints[0] #for take ONLY full backup
# ...
```
virtnbdrestore
```
dataFiles: List[str] = []
if args.sequence is not None:
logging.info("Using manual specified sequence of files.")
logging.info("Disabling redefine and config adjust options.")
args.define = False
args.adjust_config = False
dataFiles = args.sequence.split(",")
if "full" not in dataFiles[0] and "copy" not in dataFiles[0]:
logging.error("Sequence must start with full or copy backup.")
sys.exit(1)
else:
dataFiles = lib.getLatest(args.input, "*.data")
dataFiles = [f for f in dataFiles if '.diff.' not in os.path.basename(f)] #SKIP take diff for restoring by util
if not dataFiles:
logging.error("No data files (excluding diff backups) found in directory: [%s]", args.input)
sys.exit(1)
```
**Example workflow**
* Monday: `Full` (original copy).
* Tuesday: `Inc₁` (changes after `Full`).
* Wednesday:` Inc₂` (changes after `Inc₁`).
* Thursday: `Diff₁` (all changes from `Full`, including `Inc₁` + `Inc₂`).
* Friday: `Inc₃` (changes after `Diff₁`).
* Saturday: `Diff₂` (all changes from Full, including `Inc₁` + `Inc₂` + `Inc₃`).
**Restore to Saturday:**
* `Full` (Monday) + `Diff₂` (Saturday).
* `Inc₁`, `Inc₂`, `Inc₃` are not required - their changes are already in `Diff₂`.
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Évaluation
Cette issue n'a pas encore été évaluée.