After a server crash last night, one of our tables is corrupt and unusable. It is a partitioned InnoDB table, where partitions had just been updated (added/dropped) seconds before the server crashed. This is an EC2 instance, but the crash looks similar to power failure on a physical server -- the syslog entries stop at a certain time, then 10min later we see boot messages starting up. I naively assumed InnoDB tables were crash-safe, but it appears that partitioning breaks this contract. I'd love to understand this better and would appreciate any insights.
EC2 m1.small
Percona Server 5.5.24-rel26.0-256.lucid
# uname -a
# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 10.04.3 LTS
Release: 10.04
Codename: lucid
binlogs:
local ephemeral storage
/dev/sdb on /mnt type xfs (rw,noatime,nodiratime,nobarrier)
data:
EBS
/dev/sdj on /opt/mysql type xfs (rw,noatime,nodiratime,nobarrier)
mysql> check table commute_amplify_10000\G
*************************** 1. row ***************************
Table: slicer.commute_amplify_10000
Op: check
Msg_type: Error
Msg_text: Failed to read from the .par file
*************************** 2. row ***************************
Table: slicer.commute_amplify_10000
Op: check
Msg_type: Error
Msg_text: Incorrect information in file: './slicer/commute_amplify_10000.frm'
*************************** 3. row ***************************
Table: slicer.commute_amplify_10000
Op: check
Msg_type: error
Msg_text: Corrupt
3 rows in set (0.00 sec)
-rw-rw---- 1 mysql mysql 0 2012-11-19 08:17 /opt/mysql/data/slicer/commute_amplify_10000.par