pg_dump out of memory

Allgemeines zu PostgreSQL.
robomobil
Neuer Benutzer
Beiträge: 13
Registriert: Mi 1. Mär 2017, 08:01
Wohnort: Köln

Re: pg_dump out of memory

Beitrag von robomobil » Do 2. Mär 2017, 13:50

Mit der aktuellsten Veriosn 9.3.16 bekomme ich den gleichen Fehler. Bei welcher Tabelle das schiefgeht, kann ich nicht sagen, der Fehler kommt wie beschrieben unmittelbar nach "sichere Datenbankdefinition". Es ist beim Abbruch auch noch keine Datei geschrieben, es muss also bei der ersten Tabelle geschehen, die der dump anpackt.

Tabellen mit BYTEA Felder sind in dieser Datenbank, in anderen auf dem Server aber auch. %-|

Ist es vielelicht doch der oom_killer? Hab in keinem Log was gefunden, da muss ich mal die OS Truppe im Haus befragen.

castorp
Erfahrener Benutzer
Beiträge: 1126
Registriert: Sa 27. Jun 2009, 22:24
Wohnort: Bayern

Re: pg_dump out of memory

Beitrag von castorp » Do 2. Mär 2017, 14:08

robomobil hat geschrieben:
Do 2. Mär 2017, 13:50
Mit der aktuellsten Veriosn 9.3.16 bekomme ich den gleichen Fehler. Bei welcher Tabelle das schiefgeht, kann ich nicht sagen, der Fehler kommt wie beschrieben unmittelbar nach "sichere Datenbankdefinition".
Du könntest temporär "log_statement" auf "all" stellen. Wenn Du noch den Namen der Anwendung via "%a" im log_line_prefix mit aufnimmst, dann sollte man eigentlich im Postgres logfile sehen, welches Statement das war. Vielleicht hilft das ja bei der Fehlersuche
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

robomobil
Neuer Benutzer
Beiträge: 13
Registriert: Mi 1. Mär 2017, 08:01
Wohnort: Köln

Re: pg_dump out of memory

Beitrag von robomobil » Fr 3. Mär 2017, 10:50

Danke, das probiere ich am Montag mal aus.

robomobil
Neuer Benutzer
Beiträge: 13
Registriert: Mi 1. Mär 2017, 08:01
Wohnort: Köln

Re: pg_dump out of memory

Beitrag von robomobil » Mo 6. Mär 2017, 07:47

Das Statement bei dem der Dump abgebrochen wird ist:

SELECT
'/appserver/postgresql//XXXX//data/base/'||(SELECT datid FROM pg_stat_database WHERE datname='xxxx')||'/'||relfilenode||'|'||substring(string_agg('('||schemaname::text||').'||tablename::text,', ') from 1 for 256)
FROM pg_catalog.pg_class
INNER JOIN
pg_catalog.pg_tables ON (tablename = relname)
WHERE
relfilenode != 0
GROUP BY relfilenode
ORDER BY relfilenode DESC;

Das kann ich so ohne Probleme in psql ausführen. Hmmm? Da komme ich immer noch ncith weiter.

robomobil
Neuer Benutzer
Beiträge: 13
Registriert: Mi 1. Mär 2017, 08:01
Wohnort: Köln

Re: pg_dump out of memory

Beitrag von robomobil » Mo 13. Mär 2017, 12:41

Langsam lichtet sich das Dunkel. Schuld sind weder der OOM-Killer noch die Postgres Version. Sondern eine selbstgeschriebene (nicht von mir) Extension. Warum das ein Problem ist muss ich noch raukriegen, aber wenn ich die Extension rausschmeisse läuft der Dump ohne Probleme durch.

Aus der Produktion kann ich die leider nicht entfernen, da die Sachen gebraucht werden.

akretschmer
Erfahrener Benutzer
Beiträge: 7613
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: pg_dump out of memory

Beitrag von akretschmer » Mo 13. Mär 2017, 13:07

Danke für die Info, gut zu wissen.
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

johnwhick348

Re: pg_dump out of memory

Beitrag von johnwhick348 » Do 21. Mär 2019, 12:03

robomobil hat geschrieben:
Mi 1. Mär 2017, 08:26
Hallo,

ich habe ein Problem bei einem Backup mit pg_dump.

Bei der Sicherung einer Datenbank im Custom Format bekomme ich einen "out of memory" Fehler.
Im Log steht nur "unerwartetes EOF auf Client-Verbindung mit einer offenen Transaktion". Ich finde in
den Messages keinen Hinweis darauf, das der oom Killer zugeschlagen hätte.

Sichere ich die Datenbank im nicht Custom Format läuft es problemlos durch. Da ich auf 30 Servern ca. 160 Datenbanken
Scriptgesteuert sichere möchte ich nicht Ausnahmen vom normalen Verfahren, das ja sonst auch überall klappt, programmieren wenn es einen anderen Weg gibt.

Ich nutze für diese Datenbank Postgres 9.3.5. Ein Update auf eine andere Version ist nicht ohne weiteres möglich,
da diverse Anwendungen dahinter hängen.

Die betroffene Datenbank ist 10GB gross, der Rechner läuft unter SLES, 64bit, die Maschine hat (wie alle anderen) 32 GB Speicher.

Gruß

robomobil
Hi All,

I moved a physical box to a VM, and set its memory to 1Gig. Everything
runs fine except one backup:
___________________
PennySaviour

Antworten