Skip to content

Latest commit

 

History

History
43 lines (29 loc) · 1.61 KB

README.md

File metadata and controls

43 lines (29 loc) · 1.61 KB

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 in release mode unless you have a specific reason to not do so. The performance difference is non-trivial given Rust performs checked arithmetic in debug mode.

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