postgresインポートで Cannot allocate memory for output buffer
本番データを社内DBサーバに移行してテストしようとして
psqlからインポートしようとしたら、
Cannot allocate memory for output buffer (out of memory)
というエラーでインポート出来なかった。
※ちなみにエクスポートは普通にこんな感じ。
pg_dump hogehoge_db > hogehoge.sql
まあ、以下を見る限り2G制限を超えてるってことなんだが…*1
http://archives.postgresql.org/pgsql-general/2009-11/msg01185.php
なぜメモリ使いまくる?
そもそも、postgresの設定上では物理メモリ以上の設定してない。
shmmaxの設定か?と思って見てみても問題なさげ。
念のため shared_buffer や maintenance_work_mem を下げてみても同じ。
topコマンドで見てみるとpsqlがガシガシメモリ食いまくって終了〜
psql?
とここで小ハマっていたのだがあることに気付いた。
メモリ食ってるのpostgresプロセスじゃなくね?
改めてログを見てみると「エラーが一つだけ表示されている」。
普段はエラー出ててもインポート自体に影響ないものばかりだったし、
今回もエラーは出ててもかなり時間かかってたからインポート自体はされていると思っていた…が!
というわけで
きちんとエラーログは確認しましょう!
*1:32bitOS