Author - Aleksandr Kuzminsky

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 the constraints_parser.
But […]

Read more

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 […]

Read more

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 InnoDB […]

Read more

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 […]

Read more

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”:

Shell

DROP TABLE IF EXISTS `actor`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE […]

Read more

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 […]

Read more

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

Shell

SYS_STATS

1

SYS_STATS

table is now used only for non-temporary tables.

The binary packages are […]

Read more

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 tree […]

Read more

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.

A new session variable was […]

Read more