Skip to content

InnoDB Data Recovery Toolkit in Rust.

Notifications You must be signed in to change notification settings

Keniis0712/InnoDB_rs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

InnoDB_rs

InnoDB_rs is written to faciliate data recovery from accidentally deleted MySQL databases. But also serves as an implementation of InnoDB's storage engine in Rust.

Disclaimer

Project is currently under heavy development and in its early stages.

Building

Try building the tool (especially page_extractor) in release mode. The performance difference is non-trivial partially due to the Rust checked arithmetic in debug mode.

Usage

See the Wiki for usage / guide.

MySQL Support

This tool-set is develoed with MySQL 8.0, as that is the database I had to recover. Contribution to support older / newer version / table format is more than welcome.

Tools

InnoDB Page Extractor (page_extractor)

Page extractor is designed to scan a file (or even entire block device) for any InnoDB pages and extract them according to some rules.

Currently there are two extraction mode implemented:

  • Index Mode
  • Tablespace Mode

In Index Mode (default) the tool will examine all index pages, and extract them in a file that's named by their index_id. Output will be placed in output_dir/FIL_PAGE_INDEX with each file representing an index that the tool recovered.

In Tablespace Mode (--by-tablespace), it will try to store ALL page types and store them in output/BY_TABLESPACE. Each file representing a table space. (.ibd) file.

See --help for more information

InnoDB Index Explorer (page_explorer)

Page Explorer is used to explore "index pages". InnoDB stores data in it's primary key / index. When provided with a table definition, it can be used to dump full table from the primary index.

Sorting tablespace file

Table space can be sorted using a tool like innodb_sort

About

InnoDB Data Recovery Toolkit in Rust.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%