[groonga-dev,03233] Re: mroongaで同一レコードの登録、削除、登録を行うとユニークキー重複エラー発生

Back to archive index

各務 洋 kagam****@outwa*****
2015年 5月 15日 (金) 11:23:13 JST


お世話になります、各務です。

>>> INSERTするときもMroongaが認識した値でインデックスに登録する
>>> ようにしておけばよさそう。。。なのかしら。
>> 
>> これだと思います。
> 
> そうして直しました。
> 次回リリースに含まれます。

ありがとうございます!


> ところで、スレーブのログにはなにか残っていませんか?
> 接続されるのはmysqldがクラッシュしたときが多くて、そのときは
> ログになにか出ているんです。

Slave 側の mysqld.log はこうでした。

2015-05-13 18:20:11 23034 [ERROR] Slave SQL: Error 'Data truncated for column 't_date' at row 1' on query. Default database: 'db_test'. Query: 'INSERT INTO tbl_test_pat_0001 (t_key, t_date) VALUES ('test1', '0000-00-00')', Error_code: 1265
2015-05-13 18:20:11 23034 [Warning] Slave: Data truncated for column 't_date' at row 1 Error_code: 1265
2015-05-13 18:20:11 23034 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.000094' position 6482719


> テーブルが破損していると何が起きてもおかしくないので、まずは
> 破損する原因を調べて直してそれでも発生するか確認したほうがよ
> さそうだなぁと思いました。

ですよねぇ。DELETE / INSERT で破損にあたりそうなものを、
「groonga-dev,03229」にてお送りしました。


>> 新テーブルの schema を作成し、
>> INSERT INTO 新テーブル SELECT * FROM 旧テーブル;
>> ALTER TABLE RENAME の差し替えで、修復完了しています。
>> 
>> ※ ALTER TABLE 旧テーブル ENGINE mroonga; での修復は怖くてまだ試していません。
> 
> あれ、ENGINEが同じでもなにか起きるんでしたっけ。
> たぶん、最後のALTER TABLEは内部的には一時テーブルを作ってそ
> こにデータをコピーしてからリネームというロジックになるケース
> だと思うので、手動でやっているやつと同じ動作になるんじゃない
> かと思います。

まさに、同じ事を期待しています。
(あと、無駄に肥大化させてしまった時のファイルサイズの縮小とか)
発生が本番環境なので、なかなかチャレンジが難しいのです。


----
各務 
kagam****@outwa*****




groonga-dev メーリングリストの案内
Back to archive index