PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

pg_dump auf Datenbank wirft Fehler 'out of shared memory'

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:

  1. 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ält

    SELECT n.nspnameFROM pg_catalog.pg_namespace nWHERE n.nspname !~ '^pg_' UND n.nspname <> 'information_schema';

  2. Lesen Sie nun alle Zeilen von output_file und sichern Sie dieses Schema

    pg_dump <db_name> -f <backup_file> -i -x -O -R -n <schema_name_read_from_file>