質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.51%

mroongaでselectができなくなってしまいました。

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 3,678

score 625

起因:
更新処理を数万回した。

現象:
mysql> select * from articles limit 1;
ERROR 1016 (HY000): offset out of range
このときのエラーログは(*1へ)

mysql> select * from articles_2 limit 1;
ERROR 1016 (HY000): mroonga: failed to open table: <articles_2>
このときのエラーログは出力なし

対策:
ロックなどがかかってるのかと、エラーログなどを確認しましたが、
対策がよくわかりませんでした。
対応策がわかる方や心当たりのある方などご連絡お待ちしております。

(*1)
$ sudo tail -f /var/lib/mysql/groonga.log
2015-05-29 10:15:50.651654|e|b9594700|offset out of range
2015-05-29 10:15:50.654534|e|b9594700|/usr/local/lib/libgroonga.so.0(grn_vector_get_element+0x286) [0x7fbb50d94806]
2015-05-29 10:15:50.654564|e|b9594700|/usr/local/lib/libgroonga.so.0(grn_ctx_at+0x393) [0x7fbb50d9ad23]
2015-05-29 10:15:50.654573|e|b9594700|/usr/lib64/mysql/plugin/ha_mroonga.so(_ZN10ha_mroonga20storage_open_columnsEv+0x274) [0x7fbb5124a504]
2015-05-29 10:15:50.654601|e|b9594700|/usr/lib64/mysql/plugin/ha_mroonga.so(_ZN10ha_mroonga12storage_openEPKcij+0x47) [0x7fbb5124a597]
2015-05-29 10:15:50.654605|e|b9594700|/usr/lib64/mysql/plugin/ha_mroonga.so(_ZN10ha_mroonga4openEPKcij+0x129) [0x7fbb5124a719]
2015-05-29 10:15:50.654611|e|b9594700|/usr/libexec/mysqld(_ZN7handler7ha_openEP5TABLEPKcii+0x3d) [0x5ab66d]
2015-05-29 10:15:50.654617|e|b9594700|/usr/libexec/mysqld(_Z21open_table_from_shareP3THDP11TABLE_SHAREPKcjjjP5TABLEb+0x5a7) [0x75bf27]
2015-05-29 10:15:50.654626|e|b9594700|/usr/libexec/mysqld(_Z10open_tableP3THDP10TABLE_LISTP18Open_table_context+0x1ea) [0x694fda]
2015-05-29 10:15:50.654632|e|b9594700|/usr/libexec/mysqld(_Z11open_tablesP3THDPP10TABLE_LISTPjjP19Prelocking_strategy+0xc8b) [0x6976bb]
2015-05-29 10:15:50.654636|e|b9594700|/usr/libexec/mysqld(_Z30open_normal_and_derived_tablesP3THDP10TABLE_LISTj+0x51) [0x6977d1]
2015-05-29 10:15:50.654636|e|b9594700|/usr/libexec/mysqld() [0x6d4126]
2015-05-29 10:15:50.654655|e|b9594700|/usr/libexec/mysqld(_Z21mysql_execute_commandP3THD+0x16ca) [0x6d6c5a]
2015-05-29 10:15:50.654666|e|b9594700|/usr/libexec/mysqld(_Z11mysql_parseP3THDPcjP12Parser_state+0x398) [0x6da318]
2015-05-29 10:15:50.654666|e|b9594700|/usr/libexec/mysqld(_Z16dispatch_command19enum_server_commandP3THDPcj+0x155b) [0x6db91b]
2015-05-29 10:15:50.654682|e|b9594700|/usr/libexec/mysqld(_Z24do_handle_one_connectionP3THD+0xd2) [0x6aa5d2]
2015-05-29 10:15:50.654709|e|b9594700|/usr/libexec/mysqld(handle_one_connection+0x46) [0x6aa6f6]
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

残念ながらデータベースが壊れているのでバックアップからリストアするしかありません。

どう壊れているかというとarticleテーブルのどれかのカラムのメタデータが壊れています。

カラムのメタデータが壊れる可能性があるのは、カラムのメタデータを変更しているときにMySQLが強制終了した時です。カラムのメタデータが変更されるのはカラムを作った時とそのカラムに対してインデックスを設定した時です。

ALTER TABLEで後からインデックスを追加し、その時にMySQLがクラッシュした、MySQLを強制終了した、MySQLが動いているマシンを強制シャットダウンした、などあればそのときに壊れた可能性が高いです。

MySQLがクラッシュしたときはその記録がMySQLのログに残っている可能性があります。他のときはOSのログなどで確認できる可能性があります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/05/29 20:56

    直りませんか、残念です。
    /var/log/messagesをMySQLでgrepしてみましたが、
    特にそれらしいものはありませんでした。
    フリーズで強制シャットダウンはしたかもしれないです。
    バックアップからリストアしてみます。
    ご返信ありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.51%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る