मैंने डेटाबेस के आकार के रूप में सभी स्कीमा के लिए व्यक्तिगत रूप से बैकअप लेकर इस समस्या को हल किया (चाहे वह स्कीमा की संख्या हो या तालिकाओं की संख्या हो) pg_dump का उपयोग करके बैकअप लेना कठिन हो जाता है।
मैंने स्कीमा-वार बैकअप लेने के लिए स्क्रिप्ट में निम्नलिखित संशोधन किया है:
-
pg_dump
चलाने से पहले , सभी डेटाबेस स्कीमा को एक फ़ाइल में सूचीबद्ध करें। ताकि हम सभी स्कीमा को पुनरावृत्त कर सकें और एक स्कीमा के लिए बैकअप ले सकें।फ़ाइल में सभी स्कीमा को सूचीबद्ध करने का आदेश यहां दिया गया है
psql <db_name> -o <output_file> < <sql_to_list_schema>
यहां
sql_to_list_schema
शामिल हैंचुनें n.nspnameFROM pg_catalog.pg_namespace nWHERE n.nspname !~ '^pg_' और n.nspname <> 'information_schema';
-
अब
output_file
. की सभी पंक्तियों को पढ़ें और उस स्कीमा का बैकअप लेंpg_dump <db_name> -f <backup_file> -i -x -O -R -n <schema_name_read_from_file>