mysql:11891
From: "T.Sasaki" <"T.Sasaki" <papasan2000@xxxxxxxxxx>>
Date: 5 Aug 2005 12:44:18 +0900
Subject: [mysql 11891] Re: REPAIR TABLEでのエラーについて
佐々木です。 半ば独り言です・・・。 > 調べてはいるのですが、どの設定が影響するのかを全部追いきれずにいます。 > OS 的には十分すぎるほど空いていますので、my.cnf を疑っています。 件のエラーは myisamchk() -> mi_repair() から呼ばれる sort_get_next_record() という 関数内で発生しているので、ソート処理に使用するバッファ、 もしくはそれを含有するパラメータでしょうか・・・。 ここに色々乗ってますね。:-) http://dev.mysql.com/doc/mysql/ja/show-variables.html "SUGIMURA Takashi 杉村 貴士" <sugimura@xxxxxxxxxx> wrote: > 杉村です。 > > > Not enough memory for blob at [sort_param->start_recpos] (need [block_info.rec_len]) > > > > というメッセージは、そのバッファへのメモリ確保に失敗したときに出力されるようです。 > > ですから、REPAIR TABLE 命令発行後のメモリ状況や MySQL の設定を調査すれば何かわかるかも知れません。 > > > > 調べてはいるのですが、どの設定が影響するのかを全部追いきれずにいます。 > OS 的には十分すぎるほど空いていますので、my.cnf を疑っています。 > > > > また、次の要素からも何かヒントを得られるかも知れません。 > > (http://dev.mysql.com/doc/mysql/ja/repair-table.html より) > > > > このページやその周辺を見まして、不要な INDEX の削除まではできました。 > > [DB 停止状態で myisamchk -e -i] > > # myisamchk -e -i XXXXXXXXXXXXXX > Checking MyISAM file: XXXXXXXXXXXXXX > Data records: 3413 Deleted blocks: 0 > myisamchk: warning: Table is marked as crashed and last repair failed > - check file-size > myisamchk: warning: Size of indexfile is: 1499136 Should be: 171008 > - check record delete-chain > - check key delete-chain > - check index reference > - check data record references index: 1 > myisamchk: error: Found 3414 keys of 3413 > - check data record references index: 2 > myisamchk: error: Found 3414 keys of 3413 > - check data record references index: 3 > myisamchk: error: Found 3414 keys of 3413 > - check records and index references > myisamchk: error: Record at: 32577612 Can't find key for index: 1 > MyISAM-table 'LOG_PACKETDATA' is corrupted > Fix it using switch "-r" or "-o" > > User time 0.23, System time 0.21 > Maximum resident set size 72032, Integral resident set size 9203888 > Non-physical pagefaults 17884, Physical pagefaults 0, Swaps 0 > Blocks in 0 out 0, Messages in 0 out 0, Signals 0 > Voluntary context switches 0, Involuntary context switches 46 > > > [チェックしてエラーがあったので修復] > > svsadev# myisamchk --safe-recover XXXXXXXXXXXXXX > - recovering (with keycache) MyISAM-table 'XXXXXXXXXXXXXX' > Data records: 3413 > Data records: 30138 > > > [MySQL再起動、目的のINDEXを削除] > > mysql> drop index IX_XXXXXXXXXXXXXXXX ON XXXXXXXXXXXXXX; > Query OK, 30138 rows affected (20.94 sec) > Records: 30138 Duplicates: 0 Warnings: 0 > > > [しかし別な INDEX を作成しようとするとエラー] > > mysql> CREATE INDEX IX_XXXXXXXXXXXXXXXX ON XXXXXXXXXXXXXX (A, B); > ERROR 1030 (HY000): Got error 12 from storage engine > > % perror 12 > OS error code 12: Cannot allocate memory > > > どのメモリが足りなかったのかがわかるともう少々追いやすいのですが、 > なかなか難しいところです。 > > > > 残念ながら私が力になれるのはこの辺りまでのようです・・・。 > > > > いえいえ。ありがとうございます。 > > --- > 杉村 貴士 <sugimura@xxxxxxxxxx> > GnuPG fingerprint: C81B 9835 1C9E BD9B 84BF 9785 0B91 D08B F667 DCED > >
11880 2005-08-04 17:54 [SUGIMURA Takashi 杉�] REPAIR TABLE でのエラーについて 11885 2005-08-05 10:05 ┣["T.Sasaki" <papasan2] 11888 2005-08-05 11:03 ┃┗[SUGIMURA Takashi 杉�] -> 11891 2005-08-05 12:44 ┃ ┣["T.Sasaki" <papasan2] 11892 2005-08-05 12:44 ┃ ┗[とみたまさひろ <tomm] 11893 2005-08-05 12:55 ┃ ┗[SUGIMURA Takashi 杉�] 11895 2005-08-05 14:04 ┗[<takeshi@xxxxxxxxxx>]