[前][次][番号順一覧][スレッド一覧]

mysql:14468

From: Alex <Alex <alex.backspin@xxxxxxxxxx>>
Date: Thu, 24 Apr 2008 17:49:07 +0900
Subject: [mysql 14468] Re: myisamchk

ALEXです。

ありがとうございます。

その後いろいろやってみたところ、とりあえずデータは復旧したみたいです。

1.テーブル名.MYD を別名でコピーして退避
2.MySQLクライアントからtruncateにて全件データを削除
3.1で退避したデータをオリジナルに上書きコピー
4.テーブルをロックしたあとで、 repair table テーブル名 を実行

myisamchk ではなく、テーブルをロックしてrepairかoptimizeにて最適化したほ
うが現実的ではないでしょうか。
運用をしているmysqldをとめることはなかなか難しいでしょうし。
または、一度mysqldumpでバックアップしてオリジナルを消去、その後再作成し
たほうが影響度は少ないかもしれないですね。

Mikiya Okuno wrote:
> こんにちは。
> 
> 残念ですが、コマンドが間違っているようです。
> 
> myisamchk は MyISAM テーブルのリペアを行うコマンドであり、
> 最適化をするには mysqlcheck コマンドを -o オプションで使用するか
> OPTIMIZE TABLE ステートメントを使用する必要があります。
> 
> また、myisamchk は mysqld オフライン時に使用しなければならないコマンドであり、
> もしオンライン時に使用されたのならデータの整合性が取れなくなってしまいます。
> 残念ですがデータはもう戻らない公算が高いので、バックアップから戻しましょう。
> 
> MyISAM は別途レコード件数をメモリ上に保持しているので、
> count(*) が結果を返したのだと思います。
> --
> Mikiya Okuno, Support Engineer
> MySQL KK, http://www-jp.mysql.com/
> Office: Ebisu IS Building, 6th floor,
>         13-6 Ebisu 1-chome,
>         Shibuya-ku, Tokyo 150-0013
> Tel: 81-(0)3-5918-7523
> Fax: 81-(0)3-5918-7510
> 
> Are you MySQL certified?  http://www.mysql.com/certification
> 
> On 2008/04/24, at 14:49, Alex wrote:
>> ALEXです。
>>
>>> myisamchk -r テーブル名
>> として725万件のテーブルを最適化しようとしました。
>> 処理自身はエラーなく完了したのですが、中身を参照することができなくなりま
>> した。
>> mysqlクライアントにて、select文を発行してもemptyとなってしまいます。
>> データが存在しないのかと思って、件数を確認(select count(*) from テーブル
>> 名)しましたが存在しているようです。
>>
>> 原因と修復方法をご存知の方はご教授頂きたく、よろしくお願い致します。
>>
> 
> 
> 

[前][次][番号順一覧][スレッド一覧]

     14464 2008-04-24 14:49 [Alex <alex.backspin@] myisamchk                               
     14465 2008-04-24 15:30 ┗[Mikiya Okuno <okuno@]                                       
->   14468 2008-04-24 17:49  ┗[Alex <alex.backspin@]