web-dev-qa-db-ja.com

MySQLテーブルを修復できません

単純に修復できないARCHIVEテーブルが1つあります。すでにパーティションを削除しようとしていますが、それでもこのエラーが発生します。

alter table promo_tool_view_44 REMOVE PARTITIONING;
ERROR 1034 (HY000): Incorrect key file for table 'promo_tool_view_44'; try to repair it

私はすでにテーブルを修復しようとしていますが、次の応答があります。修復テーブルpromo_tool_view_1;

+-----------------------------+--------+----------+-----------------------------+
| Table                       | Op     | Msg_type | Msg_text                    |
+-----------------------------+--------+----------+-----------------------------+
| vad_stats.promo_tool_view_1 | repair | error    | Partition p1 returned error |
| vad_stats.promo_tool_view_1 | repair | error    | Corrupt                     |
+-----------------------------+--------+----------+-----------------------------+

2 rows in set (0.21 sec)

どうすればこれを解決できますか?

ありがとう、
ペドロ

3
Pedro

ARCHIVEテーブルの場合、修正する唯一の方法は、スレーブサーバーの1つからテーブルファイルを上書きすることでした。しかし、将来の災害を防ぐために、そのための1つの解決策として誰かが私たちを助けてください。

0
Pedro

まだ行っていない場合:DBをシャットダウンしてバックアップします。修理作業は危険です。

悲しいことに、バックアップテープを強くお勧めします。パーティションp1で明らかに何かが壊れています。しかし、データを取り戻す可能性のあるいくつかのトリックがあります。

myisamchkは、CLIにはない多くのものを実装しています。試してみてください

myisamchk --safe-recover
myisamchk --recover

その順序で、あなたがこれ以上運があるかどうかを確認してください。あなたを助けることができるたくさんの旗があります。完全なドキュメントは次の場所にあります。

http://dev.mysql.com/doc/refman/5.5/en/myisamchk.html

CLIでの修復に関する完全なドキュメントは、 http://dev.mysql.com/doc/refman/5.5/en/repair-table.html にあります。

修復が完了したら、最初にDBが破損した理由を追跡する必要があります。これはMySQLデータベースでは正常ではありません。

2
pehrs