Sometimes the operating system or the hardware can corrupt a data file page, in a location that does not cause a database error, but prevents mysqlbackup from completing:
mysqlbackup: Re-reading page at offset 0 3185082368 in /sqldata/mts/ibdata15 bbackup: Re-reading page at offset 0 3185082368 in /sqldata/mts/ibdata15 bbackup: Error: page at offset 0 3185082368 in /sqldata/mts/ibdata15 seems corrupt!
Scrambled data in memory can produce this error, even though the data on disk is correct. Reboot the database server and storage device to see if the problem persists.
If the data really is corrupt on disk, you can restore from an earlier backup and “roll forward” the recent changes to bring the database back to its current state.
To make an additional backup before investigating the cause of the
corruption, you can compile and run a troubleshooting utility,
innodb_page_checksum_reset.c, to reset the LSN
and checksum fields in one data page, so that
mysqlbackup can complete the backup.
The sample program resets page 22357 in a datafile
ibdata1. Edit these values according to the
values in your error message.
To compile on Linux:
$ gcc -o ibreset innodb_page_checksum_reset.c
If your data file is larger than 2 GB, compile with large file support:
$ gcc -D_XOPEN_SOURCE=600 D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -o ibreset \ innodb_page_checksum_reset.c
The command produces an executable file called
IMPORTANT: Do not treat corruption problems as a minor annoyance. Find out what is wrong with the OS or the hardware that causes corrupt pages to appear. (Such troubleshooting is beyond the scope of this manual.)