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
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
because it may lead into severe corruption. For more
information, see the MySQL manual on