InnoDB uses a novel file flush technique called doublewrite. Before writing pages to a data file, InnoDB first writes them to a contiguous area called the doublewrite buffer. Only after the write and the flush to the doublewrite buffer have completed does InnoDB write the pages to their proper positions in the data file. If the operating system crashes in the middle of a page write, InnoDB can later find a good copy of the page from the doublewrite buffer during recovery.
The doublewrite buffer may also contain compressed pages.
However, the built-in InnoDB in MySQL cannot recognize such pages, and it
assumes that compressed pages in the doublewrite buffer are
corrupted. It also wrongly assumes that the tablespace (the
.ibd
file) consists of 16K byte pages.
Thus, you may find InnoDB warnings in the error log of the
form “a page in the doublewrite buffer is not within space
bounds”.
The doublewrite buffer is not scanned after a
clean shutdown. In an emergency, you may
prevent crash recovery by setting
innodb_force_recovery
=6. However, this is strongly discouraged, because it may
lead into severe corruption. For more information, see the
MySQL manual on Forcing InnoDB Recovery.
This is the User’s Guide for InnoDB Plugin 1.0.6 for MySQL 5.1, generated on March 4, 2010 (rev 673:680M).