April 17, 2014

About Aleksandr Kuzminsky

Aleksandr is a consultant and data recovery specialist.

Checking B+tree leaf nodes list consistency in InnoDB

If we have InnoDB pages there are two ways to learn how many records they contain: PAGE_N_RECS field in the page header Count records while walking over the list of records from infimum to supremum In some previous revision of the recovery tool a short summary was added to a dump which is produced by […]

Recovering temporal types in MySQL 5.6: TIME, TIMESTAMP and DATETIME

MySQL 5.6 introduces a new feature – microseconds resolution in some temporal types. As of 5.6.4 TIME, TIMESTAMP and DATETIME can have a fractional part. To create a field with subseconds you can specify precision in brackets: TIME(3), DATETIME(6) etc. Obviously, the new feature requires the format change. All three types may now have a […]

Finally. How to verify if all MySQL records were recovered

After nearly every recovery case the same question arises: How many MySQL records were recovered and how many were lost. Until now there was no way to answer the question without manual investigation. As it turned out a small change can make a big difference. There are two ways to know how many records an […]

How to recover table structure from InnoDB dictionary

To recover a dropped or corrupt table with Percona Data Recovery Tool for InnoDB you need two things: media with records(ibdata1, *.ibd, disk image, etc.) and a table structure. Indeed, there is no information about the table structure in an InnoDB page. Normally we either recover the structure from .frm files or take it from […]

Recovery after DROP & CREATE

In a very popular data loss scenario a table is dropped and empty one is created with the same name. This is because¬† mysqldump in many cases generates the “DROP TABLE” instruction before the “CREATE TABLE”:

If there were no subsequent CREATE TABLE the recovery would be trivial. Index_id of the PRIMARY index of […]

Recovery deleted ibdata1

Recently I had a case when a customer deleted the InnoDB main table space – ibdata1 – and redo logs – ib_logfile*. MySQL keeps InnoDB files open all the time. The following recovery technique is based on this fact and it allowed to salvage the database. Actually, the files were deleted long time ago – […]

Connecting orphaned .ibd files

There are two ways InnoDB can organize tablespaces. First is when all data, indexes and system buffers are stored in a single tablespace. This is typicaly one or several ibdata files. A well known innodb_file_per_table option brings the second one. Tables and system areas are split into different files. Usually system tablespace is located in […]

Percona Server 5.1.50-rel11.4

Dear Community, Percona Server version 5.1.50-rel11.4 is now available for download. The changes in this release include: New features The primary purpose of this release is to update to the latest version of MySQL 5.1. Percona Server 5.1.50-rel11.4 is now based on MySQL 5.1.50. Fixed bugs innodb_use_sys_stats_table – The

table is now used only […]

Percona Server 5.1.49-rel12.0

Dear Community, Starting with this release, we introduce a new release model for Percona Server. From now on, we will have both Stable and Release Candidate releases. Release Candidates will introduce new features not yet available in Stable releases. Along with new features, our new 5.1.49-12.0 RC contains a couple of patches from the Facebook-MySQL […]

Percona Server 5.1.49-rel11.3

Dear Community, Percona Server version 5.1.49-rel11.3 is now available for download. The changes in this release include: New features Percona Server 5.1.49-rel11.3 is based on MySQL 5.1.49. A new variable was introduced: innodb_use_sys_stats_table. If ON, the table’s statistics are stored statically in the internal table SYS_STATS. The table is populated with the ANALYZE TABLE command. […]