We are also having problems with table corruption. It happens sporadically, but since we are moving our appliances into a production environment, sporadically is too much.
OS: Gentoo Linux 2.4.26 SMP
Hardware: 2x AMD Opteron
15K RPM SATA disk
4 GIGS RAM (1 GIG for the DB)
Corruption:
Version: '4.1.10' socket: '/var/run/mysqld/mysqld.sock' port: 3306 Gentoo Linux mysql-4.0.23
InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 421572.
InnoDB: You may have to recover from a backup.
050328 16:24:56 InnoDB: Page dump in ascii and hex (16384 bytes):
len 16384; hex d892cbfe00066ec400066ec20007ac0000000001e844581045bf000000000000000000000000000f257d004200000000251f0005000000
4000000000000000000000000000000000001b000000000000[snip] ;InnoDB: End of page dump
050328 16:24:56 InnoDB: Page checksum 996552547, prior-to-4.0.14-form checksum 1064652285
InnoDB: stored checksum 3633499134, prior-to-4.0.14-form stored checksum 1064652285
InnoDB: Page lsn 1 3896793104, low 4 bytes of lsn at page end 3896793104
InnoDB: Page number (if stored to page already) 421572,
InnoDB: space id (if created with >= MySQL-4.1.1 and stored already) 0
InnoDB: Page may be an index page where index id is 0 27
InnoDB: (index page_instance_id of table appliance/raw_page_slim_tb)
InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 421572.
InnoDB: You may have to recover from a backup.
InnoDB: It is also possible that your operating
InnoDB: system has corrupted its own file cache
InnoDB: and rebooting your computer removes the
InnoDB: error.
InnoDB: If the corrupt page is an index page
InnoDB: you can also try to fix the corruption
InnoDB: by dumping, dropping, and reimporting
InnoDB: the corrupt table. You can use CHECK
InnoDB: TABLE to scan your table for corruption.
InnoDB: See also
http://dev.mysql.com/doc/mysql/en/Forcing_recovery.html
InnoDB: about forcing recovery.
InnoDB: Ending processing because of a corrupt database page.
050328 16:24:57 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
050328 16:24:57 InnoDB: Starting log scan based on checkpoint at
InnoDB: log sequence number 2 1887813530.
InnoDB: Doing recovery: scanned up to log sequence number 2 1887938144
050328 16:24:57 InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percents: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
InnoDB: Apply batch completed
050328 16:24:58 InnoDB: Flushing modified pages from the buffer pool...
050328 16:24:58 InnoDB: Started; log sequence number 2 1887938144
Create table syntax:
CREATE TABLE `raw_page_slim_tb` (
`page_instance_id` bigint(20) unsigned NOT NULL default '0',
`session_instance_id` bigint(20) unsigned NOT NULL default '0',
`start_time` bigint(20) unsigned NOT NULL default '0',
`end_time` bigint(20) unsigned NOT NULL default '0',
`pkey_end_time_desc` bigint(20) unsigned NOT NULL default '0',
`interesting` tinyint(4) NOT NULL default '0',
`wp_1` tinyint(4) NOT NULL default '0',
`wp_2` tinyint(4) NOT NULL default '0',
`wp_3` tinyint(4) NOT NULL default '0',
`wp_4` tinyint(4) NOT NULL default '0',
`wp_5` tinyint(4) NOT NULL default '0',
`wp_6` tinyint(4) NOT NULL default '0',
`wp_7` tinyint(4) NOT NULL default '0',
`wp_8` tinyint(4) NOT NULL default '0',
`wp_9` tinyint(4) NOT NULL default '0',
`wp_10` tinyint(4) NOT NULL default '0',
`wp_11` tinyint(4) NOT NULL default '0',
`wp_12` tinyint(4) NOT NULL default '0',
`wp_13` tinyint(4) NOT NULL default '0',
`wp_14` tinyint(4) NOT NULL default '0',
`wp_15` tinyint(4) NOT NULL default '0',
`wp_16` tinyint(4) NOT NULL default '0',
`wp_17` tinyint(4) NOT NULL default '0',
`wp_18` tinyint(4) NOT NULL default '0',
`wp_19` tinyint(4) NOT NULL default '0',
`wp_20` tinyint(4) NOT NULL default '0',
`wp_21` tinyint(4) NOT NULL default '0',
`wp_22` tinyint(4) NOT NULL default '0',
`wp_23` tinyint(4) NOT NULL default '0',
`wp_24` tinyint(4) NOT NULL default '0',
`wp_25` tinyint(4) NOT NULL default '0',
`wp_26` tinyint(4) NOT NULL default '0',
`wp_27` tinyint(4) NOT NULL default '0',
`wp_28` tinyint(4) NOT NULL default '0',
`wp_29` tinyint(4) NOT NULL default '0',
`wp_30` tinyint(4) NOT NULL default '0',
`wp_31` tinyint(4) NOT NULL default '0',
`wp_32` tinyint(4) NOT NULL default '0',
`wp_33` tinyint(4) NOT NULL default '0',
`wp_34` tinyint(4) NOT NULL default '0',
`wp_35` tinyint(4) NOT NULL default '0',
`wp_36` tinyint(4) NOT NULL default '0',
`wp_37` tinyint(4) NOT NULL default '0',
`wp_38` tinyint(4) NOT NULL default '0',
`wp_39` tinyint(4) NOT NULL default '0',
`wp_40` tinyint(4) NOT NULL default '0',
UNIQUE KEY `page_instance_id` (`page_instance_id`),
KEY `start_time` (`start_time`),
KEY `end_time` (`end_time`),
KEY `pkey_end_time_desc` (`pkey_end_time_desc`),
KEY `session_instance_id` (`session_instance_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Any thoughts?
Thanks in advance,
Marc