inno backup

Analyze incremental backups and validate backup chains. Two subcommands: diff compares page LSNs between backup snapshots, chain validates XtraBackup checkpoint continuity.

backup diff

Compare page LSNs between a base (backup) and current tablespace to identify changed pages.

# Compare backup vs current
inno backup diff --base backup/users.ibd --current /var/lib/mysql/mydb/users.ibd

# Verbose: show per-page details
inno backup diff --base backup/users.ibd --current current/users.ibd -v

# JSON output
inno backup diff --base backup/users.ibd --current current/users.ibd --json

Options

OptionDescription
--basePath to base (backup) tablespace file
--currentPath to current tablespace file
-v, --verboseShow per-page change details
--jsonOutput in JSON format
--page-sizeOverride page size
--keyringPath to MySQL keyring file

Page Change States

StatusDescription
UnchangedSame LSN in both files
ModifiedCurrent LSN > base LSN
AddedPage only exists in current file
RemovedPage only exists in base file
RegressedCurrent LSN < base LSN (unusual)

backup chain

Validate XtraBackup backup chain continuity by reading xtrabackup_checkpoints files.

# Validate a backup directory
inno backup chain -d /backups/mysql

# Verbose output
inno backup chain -d /backups/mysql -v

# JSON output
inno backup chain -d /backups/mysql --json

Options

OptionDescription
-d, --dirDirectory containing backup subdirectories
-v, --verboseShow detailed checkpoint info
--jsonOutput in JSON format

Chain Validation

The chain validator reads xtrabackup_checkpoints files from each backup subdirectory and checks:

  • A full backup exists in the chain
  • LSN ranges are contiguous (no gaps between to_lsn of one backup and from_lsn of the next)
  • Overlapping LSN ranges are flagged as warnings but do not break the chain

See the Backup Analysis guide for workflows and XtraBackup integration.