Ich habe dieses Problem gelöst, indem ich Backups für alle Schemas einzeln erstellt habe, da die Größe der Datenbank (sei es die Anzahl der Schemas oder die Anzahl der Tabellen) zunimmt, ist es schwierig, ein Backup mit pg_dump zu erstellen.
Ich habe folgende Änderung am Skript vorgenommen, um eine schemaweise Sicherung durchzuführen:
-
Vor dem Ausführen von
pg_dump
, listet alle Datenbankschemata in einer Datei auf. Damit wir alle Schemata iterieren und ein Backup für ein Schema erstellen können.Hier ist der Befehl, um alle Schemata in einer Datei aufzulisten
psql <db_name> -o <output_file> < <sql_to_list_schema>
Hier
sql_to_list_schema
enthältSELECT n.nspnameFROM pg_catalog.pg_namespace nWHERE n.nspname !~ '^pg_' UND n.nspname <> 'information_schema';
-
Lesen Sie nun alle Zeilen von
output_file
und sichern Sie dieses Schemapg_dump <db_name> -f <backup_file> -i -x -O -R -n <schema_name_read_from_file>