データベースのサイズ(スキーマの数またはテーブルの数)が大きくなるにつれて、すべてのスキーマのバックアップを個別に作成することでこの問題を解決しました。pg_dumpを使用してバックアップを作成するのは困難です。
スキーマごとのバックアップを取るために、スクリプトに次の変更を加えました:
-
pg_dump
を実行する前に 、すべてのデータベーススキーマをファイルにリストします。これにより、すべてのスキーマを繰り返し、スキーマのバックアップを取ることができます。すべてのスキーマをファイルに一覧表示するコマンドは次のとおりです
psql <db_name> -o <output_file> < <sql_to_list_schema>
ここで
sql_to_list_schema
含むSELECT n.nspnameFROM pg_catalog.pg_namespace nWHERE n.nspname!〜'^ pg_' AND n.nspname <>'information_schema';
-
ここで、
output_file
のすべての行を読み取ります そのスキーマのバックアップを取りますpg_dump <db_name> -f <backup_file> -i -x -O -R -n <schema_name_read_from_file>