Saya memecahkan masalah ini dengan mengambil cadangan untuk semua skema secara individual karena ukuran basis data (baik itu jumlah skema atau jumlah tabel) meningkatkan sulit untuk mengambil cadangan menggunakan pg_dump.
Saya telah melakukan modifikasi berikut pada skrip untuk mengambil cadangan skema-bijaksana:
-
Sebelum menjalankan
pg_dump
, daftar semua skema database ke dalam file. Sehingga kami dapat mengulangi semua skema dan mengambil cadangan untuk skema.Berikut adalah perintah untuk membuat daftar semua skema ke file
psql <db_name> -o <output_file> < <sql_to_list_schema>
Di sini
sql_to_list_schema
berisiPILIH n.nspnameFROM pg_catalog.pg_namespace nWHERE n.nspname !~ '^pg_' AND n.nspname <> 'information_schema';
-
Sekarang baca semua baris
output_file
dan ambil cadangan skema itupg_dump <db_name> -f <backup_file> -i -x -O -R -n <schema_name_read_from_file>