web-dev-qa-db-ja.com

大きなSQLファイルをpostgresにインポートする方法は?

これらのコマンドを使用して約8 GBのSQLファイルをインポートしようとしています

Sudo -u postgres psql yourdb -f my_file.sql
Sudo -u postgres psql yourdb < my_file.sql
Sudo -u postgres cat my_file.sql | psql yourdb

Sudo -u postgres psql
\i my_file.sql

しかし、それらすべてがout of memory エラーメッセージ。与えられた設定も試してみました ここ

1
Said Kaldybaev

psqlは、ファイル全体をバッファリングしないか、一度に1つのクエリのみをバッファリングするか、またはCOPYストリームを使用するため、通常、大きなSQLファイルを再生するときに多くのメモリを必要としません。

メモリ不足になる可能性がある主な状況は、インポート時ではなく、特に32ビットシステムで大きな結果セットをSELECTするときです。この状況は通常、FETCH_COUNT

インポート時には、クライアント側のメモリの問題を引き起こすために、ダンプに異常に大きな行を含める必要があります。列の最大サイズは1Gbであるため、データベースにそのような内容が含まれていると、インポート時に問題が発生する可能性があります。

システムに十分なRAMがない場合は、スワップ領域を追加するだけかもしれません。

2
Daniel Vérité