PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

pg_dump sul database che genera l'errore "memoria condivisa esaurita"

Ho risolto questo problema eseguendo il backup per tutti gli schemi individualmente poiché la dimensione del database (che si tratti di n. di schemi o n. di tabelle) aumenta, è difficile eseguire il backup utilizzando pg_dump.

Ho apportato le seguenti modifiche allo script per eseguire il backup dello schema:

  1. Prima di eseguire pg_dump , elenca tutti gli schemi di database in un file. In modo da poter iterare tutti gli schemi ed eseguire il backup di uno schema.

    Ecco il comando per elencare tutti gli schemi in un file

    psql <db_name> -o <output_file> < <sql_to_list_schema>

    Qui sql_to_list_schema contiene

    SELECT n.nspnameDA pg_catalog.pg_namespace nWHERE n.nspname !~ '^pg_' AND n.nspname <> 'schema_informazioni';

  2. Ora leggi tutte le righe di output_file e fai il backup di quello schema

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