Kouhei Sutou
kou****@clear*****
2013年 7月 19日 (金) 22:38:58 JST
須藤です。 In <CANM+Hhc=ypOxp****@mail*****> "[groonga-dev,01540] mroongaラッパーモードにおけるmrnファイルをロストしたときの全文インデックス再構築について" on Fri, 19 Jul 2013 20:13:22 +0900, Naoya Murakami <visio****@gmail*****> wrote: > 今回は、不具合とか、なにかうまくいかないとかではないですが、利用していて、少し煩雑だなとか、復旧方法がなかなか気づきにくいなと思ったことについて報告します。 とても助かります! ありがとうございます! > <事例> > mroongaラッパーモードにおいて、全文フルテキストインデックスが有効な状態のまま、mrnファイルが破損した場合や、ラップしたストレージエンジンの実ファイルのみをリストアした場合等、mrnファイルが存在しないと、データにアクセスできず、また、alter > table disable keys、repair tableも受け付けない状態になります。 > この場合、当方では、以下の手順で復旧しています。 > > <復旧方法> > 1.データベースにmroongaのテーブルが1つもなく、*.mrnファイルが存在しない場合、まず、適当なmroongaのテーブルを1つ作ります。 > > 2.select mroonga_command('table_create <TABLE名>'); > でmroongaのテーブルリストに、対象のテーブルを作ります。 > これにより、データにアクセスできるようになり、selectやalter tableが > 通るようになります。 > > 3.alter table disable keys;→enable keysもしくは、repair tableにより、全文インデックスを再構築します。 おぉ。。。 これはなかなか思いつかないですねぇ。。。 > <ご提案> > MYISAMだと、ファイル単位で取り扱いやすく、hotbackupみたいなコマンドもあるので、mrnファイルだけがないようなことも起こり得るのかなと考えました。 > もし、mrnファイルがない場合でも、最低限、参照用のコマンドやインデックス再構築のコマンドを受け付けるよう、ストレージエンジン側で対応可能でしたら、運用が楽になり、助かります。また、今後同事象に陥ったユーザも復旧手順を模索する手間が軽減できると思います。 > > とはいえ、mrnファイルがないときのエラー処理でほかとの兼ね合い等もあるかもしれませんし、あまり通常使用で起こる頻度は少ないと思われますので、障害時のユーザ側のノウハウとしてもよい気がします。 なるほど。 ストレージモードのときは無理ですが、ラッパーモードの時は repairだけでも動くようになればよさそうな気がしますね。 検討してみます! -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270) groongaサポート: http://groonga.org/ja/support/ パッチ採用はじめました: http://www.clear-code.com/recruitment/ コミットへのコメントサービスはじめました: http://www.clear-code.com/services/commit-comment.html