web-dev-qa-db-ja.com

InnoDBの「破損」

私が使う:

  • 5.1.63-0ubuntu0.11.10.1
  • Apache/2.2.20(Ubuntu)
  • MySQLクライアントのバージョン:5.1.63

MySQLデータベースからのデータの読み取り中に、システムが次のエラーを継続的に表示します。

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

システムを再起動した後、データベースへのアクセスを回復し、「問題のある」データを問題なく数分または数時間読み取ることができます(同じデータの読み取り試行に対して)。

問題の原因について何か考えはありますか?

  1. HDDをS.M.A.R.Tユーティリティで確認しましたが、問題は見つかりませんでした。
  2. 結果なしでAppArmorを非アクティブ化します。
  3. 結果なしでクエリでSQL_NO_CACHEオプションも試した
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)
5
Ingmar

再起動すると一時的に問題が解決し、エラーが移動します...これはシステムの欠陥を強く示していますRAM OSキャッシュの破損を引き起こしています。

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.

あなたはおそらくこの部分をすでに知っていますが、Ubuntuの起動時に、「メモリテスト(memtest86 +)」を選択して確認します。 GRUBブートメニューが通常表示されない場合は、最初に起動するときに左シフトを押し続けることができるはずです。

4