[groonga-dev,04227] (改題)32bit環境でdump結果をrestoreするときにエラーが出る

Back to archive index

shinonon shino****@jcom*****
2016年 12月 24日 (土) 00:02:53 JST


篠田です。

すみません。自己解決しました。

On Fri, 23 Dec 2016 22:35:17 +0900
shinonon <shino****@jcom*****> wrote:

> 以下のように2つに分割しました。
> ----------------------------------------------------------------------
> table_create …
> table_create …
> column_create …
> table_create …
>   :
> load --table Mail
> [
> ["_key","attr",…],
> ["1",[],…],
> ["2",[],…],
>   :
> ["9999",[],…]         ←最後のカンマを削って
> ]                      ←]で閉じる
> ----------------------------------------------------------------------
> load --table Mail
> [
> ["_key","attr",…],    ←★★★分割後にもカラム名が必要!!!!!
> ["10000",[],…],       ←次の項目から始める
> ["10001",[],…],
>   :
> ]
> 
> column_create …
> column_create …
> column_create …       ←最後まで
> ----------------------------------------------------------------------

★★★に書いたように、2つに分割した後にカラム名も追加しなければいけなかっ
たことに気づきました。
大変お騒がせしました。

ただ、それでもやはりエラーが出てしまいました。
調べてみたら、load --table したあとに、インデックスカラムを 
column_create しているところでエラーが出ていることが分かりました。
そこで、dump 結果のインデックスカラムを作る column_create を load --table
する前に持ってきて restore したら、正常に完了することを確認しました(時
間はだいぶかかるようになってしまいましたが…)。
ただ、約1GBを一気に restore するとダメで、約300MBずつに分割したものを順
番に restore することで正常完了しました。

一気にインデックスカラムを作ることでメモリエラーが起きているということに
なると思いますので、試しに正常完了した DB に対して reindex を実行したら、
やはりエラーが出て検索が行えなくなってしまいました。

というわけで今回の現象は、
・32bit環境で大きなDB(dump結果が約1GB)を reindex すると DB が壊れる
・32bit環境で大きなDB(dump結果が約1GB)を一気に restore できない
ということになると思います。

これはやはり 32bit版の仕様制限ということになってしまいますでしょうか?


-- 
篠田 敦
shino****@jcom*****




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