Quick Start
This page walks through the most common inno operations using practical examples. Each example can be run against any .ibd tablespace file from MySQL 5.7+, Percona, or MariaDB 10.1+.
Parse a Tablespace
Display page headers and a summary of page types in a tablespace file:
inno parse -f /var/lib/mysql/mydb/users.ibd
Use -p to focus on a single page, -v for verbose output, or -e to include extent descriptor details:
inno parse -f users.ibd -p 0 -v
Validate Checksums
Verify the integrity of every page in a tablespace by checking CRC-32C, legacy InnoDB, or MariaDB full_crc32 checksums:
inno checksum -f users.ibd
Add -v to see per-page checksum details.
Inspect Page Structures
Get detailed structural analysis of specific page types. Use -t to filter by type:
inno pages -f users.ibd -t INDEX
This shows B+Tree node details for INDEX pages, including record counts, page level, and directory slot information.
Hex Dump
View raw bytes of any page:
inno dump -f users.ibd -p 3
Use --offset and -l to narrow the dump to a specific byte range within the page:
inno dump -f users.ibd -p 3 --offset 0 -l 38
Extract SDI Metadata
Read Serialized Dictionary Information from MySQL 8.0+ tablespace files. This contains table definitions, column types, and index metadata:
inno sdi -f users.ibd --pretty
Analyze Redo Logs
Parse InnoDB redo log file headers, checkpoint blocks, and log record blocks:
inno log -f /var/lib/mysql/ib_logfile0
Use -b to limit the number of blocks analyzed, or --no-empty to skip empty blocks:
inno log -f ib_logfile0 -b 10 --no-empty -v
Compare Two Tablespaces
Diff two tablespace files page-by-page to see what changed between a backup and the current state:
inno diff backup.ibd current.ibd -v
Use -b for byte-level detail on changed pages, or -p to compare a single page:
inno diff backup.ibd current.ibd -p 3 -b
Monitor Live Changes
Watch a tablespace file for modifications in real time. The watch loop uses LSN-based change detection:
inno watch -f users.ibd -i 500 -v
The -i flag sets the polling interval in milliseconds.
Assess Recoverability
Evaluate page-level damage and estimate how many records are salvageable:
inno recover -f users.ibd --force -v
The --force flag attempts recovery assessment even on pages that appear severely damaged.
Read Encrypted Tablespaces
Parse tablespace files that use InnoDB tablespace encryption by providing a keyring file:
inno parse -f encrypted.ibd --keyring /var/lib/mysql-keyring/keyring
Search a Data Directory
Find all tablespace files containing a specific page number:
inno find -d /var/lib/mysql -p 42
Add -s to filter by space ID, or --first to stop after the first match.
List and Look Up Tablespace IDs
List all tablespace IDs in a data directory, or look up a specific one:
inno tsid -d /var/lib/mysql -l
inno tsid -d /var/lib/mysql -t 15
Check LSN Consistency
Compare the LSN in ibdata1 against redo log checkpoints to detect sync issues:
inno info --lsn-check -d /var/lib/mysql
JSON Output
Every subcommand supports --json for machine-readable output, making it straightforward to integrate with scripts and pipelines:
inno parse -f users.ibd --json | jq '.pages | length'
inno checksum -f users.ibd --json
inno recover -f users.ibd --json
Getting Help
Every subcommand has its own --help flag with a full description of available options:
inno --help
inno parse --help
inno checksum --help
For detailed documentation on each subcommand, see the CLI Reference.