Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

I use:

  • 5.1.63-0ubuntu0.11.10.1
  • Apache/2.2.20 (Ubuntu)
  • MySQL client version: 5.1.63

The system is continuously displaying the following error during reading data from a MySQL database:

InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 387794.

After rebooting the system, I can regain access to the database and read the "problematic" data without any problem for a few minutes or hours until the same problem re-appears (for different data read attempts).

Any idea on the source of the problem?

  1. I have checked the HDD with S.M.A.R.T utility and I could not find any problem.
  2. I deactivate AppArmor without any result.
  3. I also tried SQL_NO_CACHE option in the query without any result
120918 13:07:06  InnoDB: Page checksum 3504102879, prior-to-4.0.14-form checksum 1216630776
InnoDB: stored checksum 2100325079, prior-to-4.0.14-form stored checksum 1216630776
InnoDB: Page lsn 2 1168743501, low 4 bytes of lsn at page end 1168743501
InnoDB: Page number (if stored to page already) 387794,
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 175
InnoDB: (index "PRIMARY" of table "OII"."dataset_cs_1")
InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 387794.
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/refman/5.1/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
InnoDB: Ending processing because of a corrupt database page.
120918 13:07:07 [Note] Plugin 'FEDERATED' is disabled.
120918 13:07:07  InnoDB: Initializing buffer pool, size = 64.0M
120918 13:07:07  InnoDB: Completed initialization of buffer pool
InnoDB: Log scan progressed past the checkpoint lsn 2 2380293142
120918 13:07:07  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...
InnoDB: Doing recovery: scanned up to log sequence number 2 2380293162
120918 13:07:07  InnoDB: Started; log sequence number 2 2380293162
120918 13:07:07 [Note] Event Scheduler: Loaded 0 events
120918 13:07:07 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.1.63-0ubuntu0.11.10.1'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  (Ubuntu)
share|improve this question

1 Answer 1

Rebooting temporarily clears the problem, and the error moves around... this strongly points to defective system RAM causing corruption of the OS cache.

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.

You likely already know this part, but with Ubuntu, on startup, select "Memory test (memtest86+)" to verify. If you don't normally see the GRUB boot menu, you should be able to hold left-shift as it first starts up.

share|improve this answer
1  
I was refusing myself to believe my RAM was defective, but you answer encouraged me to test. And the answer was yes, my RAM was the problem. I used memtester to check the RAM without need to reboot, and got a lot of FAILURE: 0xea9cb64da3d81b00 != 0xa0cb64da3d81b00 at offset 0x16e0f71a0. Thanks! –  BrunoJCM Sep 25 '12 at 23:16

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.