Naoya Murakami
visio****@gmail*****
2016年 6月 16日 (木) 10:39:08 JST
村上です。 Mroongaででかいインデックスの作成をやっていて気付いたのですが、 Mroongaで alter table table_name add fulltext key (column_name); とやり、 作成中にkillなどでmysqldが強制的に死ぬと、frmの更新は終わっていないため、 alter table table_name drop key column_name; とすると、 ERROR 1091 (42000) at line 1: Can't DROP 'column_name'; check that column/key exists となりますが、 実態のGroongaのインデックスカラム自体は中途半端に以下のように存在しています。 column_listでも確認できます。 -rw-r-----. 1 mysql mysql 23M Jun 15 09:27 /var/lib/mysql/db_name.mrn.0000269 -rw-r-----. 1 mysql mysql 4.0K Jun 14 21:46 /var/lib/mysql/db_name.mrn.0000269.c -rw-------. 1 mysql mysql 192G Jun 15 17:51 /var/lib/mysql/db_name.mrn.0000269pK52Xt Groongaコマンドのcolumn_removeでこの不正なインデックスカラムを削除し、 一時ファイルをOSのrmで消すことによりインデックスカラム自体は 削除可能なのですが、データカラム側にHookが残留します。 その結果、 以下のエラーでデータカラムの削除ができなくなってしまい、 また、テーブルの削除もできなくなり、データベースごと再作成しか手がなくなります。 [column][remove][index] hook has a dangling reference 今のところ、私は一時的にC-APIで直接データカラムのHOOKを削除することにより対処 しましたが、こういうケースで対処できなくなったということを報告しておきます。 -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...下载