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@]