Enterprise Postgresのpg_dumpコマンド実行時の「ERROR: invalid memory alloc request size xxxxxxxxxx」エラーについて
Enterprise Postgresのよくあるご質問を検索できます。
Enterprise Postgres の技術情報はこちら
- Enterprise Postgresのpg_dumpコマンドで、bytea型の列を含むテーブルをバックアップしたところ、「テーブル"xxxxx"の内容のダンプに失敗: PQgetResult()が失敗しました。 (15877)」、 「ERROR: invalid memory alloc request size xxxxxxxxxx」というエラーになりました。
原因と対処方法を教えてください。 - [原因]
pg_dumpコマンドでは、bytea型のデータを文字として出力します。そのため、bytea型のデータが文字に変換され、文字として扱えるデータ長の定量制限(1ギガバイト)を超えました。
bytea型のデータの出力形式の詳細は、以下のマニュアルを参照してください。
Fujitsu Enterprise Postgres 15
PostgreSQL 15.0 Documentation
Part II. The SQL Language
Chapter 8. Data Types
8.4. Binary Data Types
扱えるデータ種と定量制限の詳細は、以下のマニュアルを参照してください。
Fujitsu Enterprise Postgres 15
導入ガイド(サーバ編)
付録G 定量制限
表G.5 扱えるデータ種と属性
[対処方法]
COPYコマンドでFORMATパラメータにbinaryを指定して、当該テーブルのデータを退避してください。COPYコマンドはデータのみしか退避しませんので、pg_dumpコマンドの-sオプションや--exclude-table-dataを用いてテーブル定義を合わせて退避してください。
詳細は以下を参照してください。
- PostgreSQLインサイド
PostgreSQL技術インデックスの「【豆知識】バイナリデータをpg_dumpでバックアップしたときのエラーを解決したい」 - マニュアル
Fujitsu Enterprise Postgres 15
PostgreSQL 15.0 Documentation
Part VI. Reference
SQL Commands
COPY
PostgreSQL Client Applications
pg_dump
なお、上記以外の製品バージョン/レベルについては、該当するマニュアル箇所を参照してください。 - PostgreSQLインサイド
製品・サービス区分 | Enterprise Postgres | ||
---|---|---|---|
製品・サービス情報 |
|
||
アンサー種別 | 運用/保守 |