初心者もOK! FreeBSD質問スレッド その61

このエントリーをはてなブックマークに追加
811780
>>800

> ttp://bugs.mysql.com/bug.php?id=1551
一瞬、やった、これか!と思いましたが、私の場合ファイルサイズでエラーが出ていないと
思います。多分。

う〜、かなり凹んできましたー。

やっている時は、気が付かなかったのですが、下のエラー表示で、
error: Size of datafile と出てますね。

DBのAテーブルへレコードを追加後チェック

# myisamchk ***.MYI
Checking MyISAM file: ***.MYI
Data records: 2 Deleted blocks: 0
- check file-size
myisamchk: error: Size of datafile is: 32 Should be: 56
- check key delete-chain
- check record delete-chain
- check index reference
- check data record references index: 1
myisamchk: error: Found key at page 1024 that points to record outside datafile
- check record links
myisamchk: error: Record-count is not ok; is 1 Should be: 2
myisamchk: warning: Found 1 parts Should be: 2 parts
MyISAM-table '***.MYI' is corrupted
Fix it using switch "-r" or "-o"

エラー発生、修復作業へ
812780:2005/05/16(月) 02:46:51
つづき
# myisamchk -o ***.MYI
- recovering (with keycache) MyISAM-table '***.MYI'
Data records: 2
Data records: 1

# myisamchk ***.MYI
Checking MyISAM file: ***.MYI
Data records: 1 Deleted blocks: 0
- check file-size
- check key delete-chain
- check record delete-chain
- check index reference
- check data record references index: 1
- check record links

修復終了。
しかし、レコードが1つになっている。

この一連の作業がループ状態だったのですが、
同一DBの容量がかさむBテーブルのレコードを大幅に削除。 
(この作業が状況の打開になったのですが・・・。)
すると、Aレコードに問題なくインサート出来るようになりました。

Mysqlバージョン 3.23
Aテーブルレコード数 約20件
Bテーブルレコード数 約15万件
両方とも同一DBなので、同ディレクトリ内にデータが保存されています。

さらに解ったことがあります。
このDBのデータフォルダの合計サイズは、約250MBでした。
これぐらいでは、フォルダの容量制限にはかからないですよね〜。
813名無しさん@お腹いっぱい。:2005/05/16(月) 08:34:59
>>811
報告あんがと。
あと、Aテーブルにレコードをインサートできなかったときのエラーメッセージも教えて。
これも参考になるかも:
ttp://dev.mysql.com/doc/mysql/ja/repair.html

続きは MySQL 総合スレでやろう。
ttp://pc8.2ch.net/test/read.cgi/db/1108124655/l50

もちろん、HDD への WRITE がまた失敗する可能性がある以上
まず真っ先にやるべき:
1. バックアップ
2. HDD / ケーブルなどのトラブルシューティング
は済んでるものとして。