Re: Wie überprüfe ich ein Backup Prozess mit pg_dump

Lists: pgsql-de-allgemein
From: Ralf Emanuel <emanuel(at)inexweb(dot)de>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Wie überprüfe ich ein Backup Prozess mit pg_dump
Date: 2008-10-30 07:59:08
Message-ID: 4909694C.8030903@inexweb.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

Hallo,

in einem aktuellen Fall konnte ein Backup mit pg_dump nicht mehr mit
pg_restore zurückgegespielt werden, da das Backup fehlerhaft war. Daher
möchte ich bei dem täglichen Backup per Script überprüfen ob das Backup
mit pg_dump ohne Fehler abgeschlossen hat. Aufgrund der Größe der
Datenbank nutze ich "-Fc" zum komprimieren des Dumps.

Leider liefert pg_dump keinen eindeutigen Ergebniscode zurück an dem
fest gemacht werden kann ob ein Fehler vorliegt oder nicht.

Wie kann ich am besten sicherstellen ob pg_dump ein fehlerfreies Backup
erstellt hat?

Vielen Dank im Voraus für einen Tipp.

Ralf


From: "A(dot) Kretschmer" <andreas(dot)kretschmer(at)schollglas(dot)com>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Wie überprüfe ich ein Backup Prozess mit pg_dump
Date: 2008-10-30 09:16:59
Message-ID: 20081030091655.GA5462@a-kretschmer.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

am Thu, dem 30.10.2008, um 8:59:08 +0100 mailte Ralf Emanuel folgendes:
> Hallo,
>
> in einem aktuellen Fall konnte ein Backup mit pg_dump nicht mehr mit
> pg_restore zurückgegespielt werden, da das Backup fehlerhaft war. Daher

Welche Version und exakte Fehlermeldung, bitte.

Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net


From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Ralf Emanuel <emanuel(at)inexweb(dot)de>
Cc: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Wie überprüfe ich ein Backup Prozess mit pg_dump
Date: 2008-10-30 09:49:47
Message-ID: 4909833B.10307@gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

Ralf Emanuel wrote:
> Leider liefert pg_dump keinen eindeutigen Ergebniscode zurück an dem
> fest gemacht werden kann ob ein Fehler vorliegt oder nicht.

Sollte eigentlich schon ...

> Wie kann ich am besten sicherstellen ob pg_dump ein fehlerfreies Backup
> erstellt hat?

Dump wieder einspielen, nochmal rausdumpen und diff drüber.


From: Ralf Emanuel <emanuel(at)inexweb(dot)de>
To: Peter Eisentraut <peter_e(at)gmx(dot)net>
Cc: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Wie überprüfe ich ein Backup Prozess mit pg_dump
Date: 2008-10-30 13:22:06
Message-ID: 4909B4FE.7020200@inexweb.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-15"
http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Hallo,<br>
<br>
bzgl. des pg_dump Problems ist dies aktuell mit der Version 8.1
aufgetreten. Der Dump läuft per Scheduler gesteuert jeweils Nachts um
01:00 Uhr. Der Dump wurde Tag für Tag erstellt, nur leider fehlerhaft.
Aufgefallen ist es dann bei einem Update auf die Version 8.2.10. Beim
manuellen überprüfen trat der Fehler bei Copy-Prozess auf. Wir haben
die Datenbank mittlerweile sehr aufwendig mit eigenen Scripten
repariert.<br>
<br>
Da ich ausschließen möchte, dass so etwas noch einmal passiert, möchte
ich sicherstellen, dass die Dumps fehlerfrei erstellt werden. Dafür
habe ich das Script erweitert und den Return Wert ausgewertet. Es wird
jedoch kein Wert von pg_dump zurückgeliefert.<br>
---snip---<br>
ERRCODE1=`su - $PGUSER -c "pg_dump -p 5433 -f $BACKUPTMP/opencms.dump
-Fc -Z9 -EUNICODE opencms-1-7"`<br>
ERRCODE2=`su - $PGUSER -c "pg_dump -p 5433 -f $BACKUPTMP/ts.dump -Fc
-Z9 -EUNICODE tourismussuite-1-7"`<br>
ERRCODE3=`su - $PGUSER -c "pg_dump -p 5433 -f
$BACKUPTMP/buchung-tcf.dump -Fc -Z9 -EUNICODE buchung-1-7"`<br>
<br>
ERRCODE4=`tar -czvf $BACKUPDIR/db-backup.$SERVER-$DATE.tar.gz
$BACKUPTMP/ts.dump $BACKUPTMP/opencms.dump $BACKUPTMP/buchung-tcf.dump`<br>
<br>
if [ "$ERRCODE1 -ne 0" -o "$ERRCODE2 -ne 0" -o "$ERRCODE3 -ne 0" -o
"$ERRCODE4 -ne 0" ] ; then<br>
   $CAT $MAILTO | while read line<br>
   do<br>
      echo "InSchleife"<br>
      $MAIL $line -s $SUBJECT &lt; $ERRTEXT<br>
   done<br>
fi<br>
--snip--<br>
<br>
Wie gesagt, handelt es sich um ein automatisches Backup. Was das diff
bringen soll habe ich nicht ganz kapiert.<br>
<br>
Warum liefert pg_dump (v 8.2.10) kein return value? Gibt es evtl. eine
andere Lösung das Backup auf Vollständigkeit zu überprüfen?<br>
<br>
Vielen Dank und Grüße<br>
Ralf<br>
<br>
<br>
Peter Eisentraut schrieb:
<blockquote cite="mid:4909833B(dot)10307(at)gmx(dot)net" type="cite">Ralf Emanuel
wrote:
<br>
<blockquote type="cite">Leider liefert pg_dump keinen eindeutigen
Ergebniscode zurück an dem
<br>
fest gemacht werden kann ob ein Fehler vorliegt oder nicht.
<br>
</blockquote>
<br>
Sollte eigentlich schon ...
<br>
<br>
<blockquote type="cite">Wie kann ich am besten sicherstellen ob
pg_dump ein fehlerfreies Backup
<br>
erstellt hat?
<br>
</blockquote>
<br>
Dump wieder einspielen, nochmal rausdumpen und diff drüber.
<br>
<br>
</blockquote>
<br>
<div class="moz-signature">-- <br>
<p><font color="#990000" face="Arial" size="3">&#9658;</font><font
face="Arial" size="3"> TourismusSuite - Ihre Destination im Griff<br>
     ++ Internet Booking Engine ++ Touristisches Content Management ++
Destinations Management<br>
<br>
     Erfahren Sie mehr unter <a href="http://www.tourismussuite.com"><font
color="#990000">www.TourismusSuite.com</font></a>
</font></p>
--<br>
<font face="Arial" size="2">
<strong>Ralf Emanuel</strong><br>
Geschäftsführer<br>
<br>
inexweb ralf emanuel GmbH<br>
Hamtorstraße 16<br>
D-41460 Neuss<br>
Fon: +49 (0) 21 31 / 3 66 60-70<br>
Fax: +49 (0) 21 31 / 3 66 60-88<br>
<a href="http://www.inexweb.de"><font color="gray">www.inexweb.de</font></a></font>
<p>--<br>
<font face="Arial" size="2">
Geschäftsführer: Ralf Emanuel<br>
Handelsregister: HRB 10160, Amtsgericht Neuss<br>
</font></p>
</div>
</body>
</html>

Attachment Content-Type Size
unknown_filename text/html 3.4 KB

From: "A(dot) Kretschmer" <andreas(dot)kretschmer(at)schollglas(dot)com>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Wie überprüfe ich ein Backup Prozess mit pg_dump
Date: 2008-10-30 18:48:35
Message-ID: 20081030184835.GA21880@a-kretschmer.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

am Thu, dem 30.10.2008, um 14:22:06 +0100 mailte Ralf Emanuel folgendes:
> Hallo,
>
> bzgl. des pg_dump Problems ist dies aktuell mit der Version 8.1 aufgetreten.
> Der Dump läuft per Scheduler gesteuert jeweils Nachts um 01:00 Uhr. Der Dump
> wurde Tag für Tag erstellt, nur leider fehlerhaft. Aufgefallen ist es dann bei

Definiere 'fehlerhaft'. Nutze dabei konkrete Fehlermeldungen.

> einem Update auf die Version 8.2.10. Beim manuellen überprüfen trat der Fehler

Erste Regel für Versionsupdate: nutze das pg_dump(all) der höheren
Version gegen die niedere. Diese Regel hast Du scheinbar verletzt.

> bei Copy-Prozess auf. Wir haben die Datenbank mittlerweile sehr aufwendig mit
> eigenen Scripten repariert.
>
> Da ich ausschließen möchte, dass so etwas noch einmal passiert, möchte ich
> sicherstellen, dass die Dumps fehlerfrei erstellt werden. Dafür habe ich das

Möglicherweise PEBKAC, daher meine Nachfragen.

> Peter Eisentraut schrieb:

Bitte kein TOFU. Ich stelle mich nicht auf den Kopf, um eMails zu lesen.

Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net


From: Ralf Emanuel <emanuel(at)inexweb(dot)de>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Wie überprüfe ich ein Backup Prozess mit pg_dump
Date: 2008-10-30 21:33:13
Message-ID: 490A2819.9070901@inexweb.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

> Definiere 'fehlerhaft'. Nutze dabei konkrete Fehlermeldungen.

Möglicherweise PEBKAK!

es geht mir nicht um die Fehlermeldung.

Ich möchte nur wissen, wie und ob pg_dump ein return value zurück gibt mit dem überprüft werden kann ob der Dump sauber ist. In der Doku steht nichts dazu. Gerne auch alternative Vorschläge.

> einem Update auf die Version 8.2.10. Beim manuellen überprüfen trat der Fehler

Erste Regel für Versionsupdate: nutze das pg_dump(all) der höheren
Version gegen die niedere. Diese Regel hast Du scheinbar verletzt.

Danke für den Tipp.


From: Bernd Helmle <mailings(at)oopsware(dot)de>
To: Ralf Emanuel <emanuel(at)inexweb(dot)de>, Peter Eisentraut <peter_e(at)gmx(dot)net>
Cc: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Wie überprüfe ich ein Backup Prozess mit pg_dump
Date: 2008-10-31 09:50:27
Message-ID: E4CAF998AF20F170D1F019A6@imhotep.credativ.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

--On Donnerstag, Oktober 30, 2008 14:22:06 +0100 Ralf Emanuel
<emanuel(at)inexweb(dot)de> wrote:

> ERRCODE1=`su - $PGUSER -c "pg_dump -p 5433 -f $BACKUPTMP/opencms.dump -Fc
> -Z9 -EUNICODE opencms-1-7"`

Du machst sowas auch völlig falsch. Wenn du den Return Code des Programmes
meinst, wertest du z.B. mit $? aus, bspw:

pg_dump && if [ $? -eq 0 ]; then echo "OK"; else echo "ERROR"; fi

--
Thanks

Bernd


From: Bernd Helmle <mailings(at)oopsware(dot)de>
To: Bernd Helmle <mailings(at)oopsware(dot)de>, Ralf Emanuel <emanuel(at)inexweb(dot)de>, Peter Eisentraut <peter_e(at)gmx(dot)net>
Cc: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Wie überprüfe ich ein Backup Prozess mit pg_dump
Date: 2008-10-31 09:53:29
Message-ID: 1BA3BD3DD5F6EE00A4D96F60@imhotep.credativ.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

--On Freitag, Oktober 31, 2008 10:50:27 +0100 Bernd Helmle
<mailings(at)oopsware(dot)de> wrote:

> --On Donnerstag, Oktober 30, 2008 14:22:06 +0100 Ralf Emanuel
> <emanuel(at)inexweb(dot)de> wrote:
>
>> ERRCODE1=`su - $PGUSER -c "pg_dump -p 5433 -f $BACKUPTMP/opencms.dump -Fc
>> -Z9 -EUNICODE opencms-1-7"`
>
> Du machst sowas auch völlig falsch. Wenn du den Return Code des
> Programmes meinst, wertest du z.B. mit $? aus, bspw:
>
> pg_dump && if [ $? -eq 0 ]; then echo "OK"; else echo "ERROR"; fi

Ich meinte natürlich:

pg_dump ; if [ $? -eq 0 ]; then echo "OK"; else echo "ERROR"; fi

--
Thanks

Bernd


From: "Albe Laurenz" <laurenz(dot)albe(at)wien(dot)gv(dot)at>
To: "Ralf Emanuel *EXTERN*" <emanuel(at)inexweb(dot)de>, <pgsql-de-allgemein(at)postgresql(dot)org>
Subject: RE: [pgsql-de-allgemein] Wie überprüfe ich ein Backup Prozess mit pg_dump
Date: 2008-10-31 12:01:13
Message-ID: D960CB61B694CF459DCFB4B0128514C202ACEE28@exadv11.host.magwien.gv.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

Ralf Emanuel wrote:

> es geht mir nicht um die Fehlermeldung.

... also auch nicht um die Lösung.

> Ich möchte nur wissen, wie und ob pg_dump ein return value
> zurück gibt mit dem überprüft werden kann ob der Dump sauber
> ist. In der Doku steht nichts dazu. Gerne auch alternative
> Vorschläge.

Naja, das ist ganz einfach.

Wenn pg_dump der Meinung ist, daß der Dump nicht gut ist, gibt es einen
Fehler zurück (z.B. weil das Filesystem voll ist).

Wenn pg_dump der Meinung ist, daß der Dump gut ist, meldet es Erfolg.

Wenn pg_dump einen Softwarefehler hat, der bewirkt, daß der Dump nicht
erfolgreich eingespielt werden können wird, meldet es Erfolg, weil es das
nicht wissen kann.

Wenn der Benutzer einen Unsinn machen wird, wenn er den Dump einspielt,
und es deshalb fehlschlagen wird, meldet pg_dump trotzdem einen Erfolg,
weil auch das kann es nicht voraussehen.

Wenn wir Ihnen glauben können, daß pg_dump Erfolg gemeldet hat, kann es
nicht der erste Fall sein.

Um herauszubekommen, welcher der verbleibenden möglichen Fälle zutrifft,
brauchen wir Information und ... erraten ...

Die Fehlermeldung! Bingo!

Liebe Grüße,
Laurenz Albe


From: Ralf Emanuel <emanuel(at)inexweb(dot)de>
To: Bernd Helmle <mailings(at)oopsware(dot)de>
Cc: Peter Eisentraut <peter_e(at)gmx(dot)net>, pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Wie überprüfe ich ein Backup Prozess mit pg_dump
Date: 2008-11-01 10:05:34
Message-ID: 490C29EE.7040907@inexweb.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Hallo Herr Helmle,<br>
<br>
genau danach habe ich gesucht. Vielen Dank f&uuml;r den Hinweis<br>
<br>
LG, Ralf Emanuel<br>
<br>
Bernd Helmle schrieb:
<blockquote cite="mid:1BA3BD3DD5F6EE00A4D96F60(at)imhotep(dot)credativ(dot)de"
type="cite">--On Freitag, Oktober 31, 2008 10:50:27 +0100 Bernd Helmle
<a class="moz-txt-link-rfc2396E" href="mailto:mailings(at)oopsware(dot)de">&lt;mailings(at)oopsware(dot)de&gt;</a> wrote:
<br>
<br>
<blockquote type="cite">--On Donnerstag, Oktober 30, 2008 14:22:06
+0100 Ralf Emanuel
<br>
<a class="moz-txt-link-rfc2396E" href="mailto:emanuel(at)inexweb(dot)de">&lt;emanuel(at)inexweb(dot)de&gt;</a> wrote:
<br>
<br>
<blockquote type="cite">ERRCODE1=`su - $PGUSER -c "pg_dump -p 5433
-f $BACKUPTMP/opencms.dump -Fc
<br>
-Z9 -EUNICODE opencms-1-7"`
<br>
</blockquote>
<br>
Du machst sowas auch v&ouml;llig falsch. Wenn du den Return Code des
<br>
Programmes meinst, wertest du z.B. mit $? aus, bspw:
<br>
<br>
pg_dump &amp;&amp; if [ $? -eq 0 ]; then echo "OK"; else echo "ERROR";
fi
<br>
</blockquote>
<br>
Ich meinte nat&uuml;rlich:
<br>
<br>
pg_dump ; if [ $? -eq 0 ]; then echo "OK"; else echo "ERROR"; fi
<br>
<br>
<br>
<br>
</blockquote>
<br>
<div class="moz-signature">-- <br>
<p><font color="#990000" face="Arial" size="3">&#9658;</font><font
face="Arial" size="3">&nbsp;TourismusSuite - Ihre Destination im Griff<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;++ Internet Booking Engine ++ Touristisches Content Management ++
Destinations Management<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Erfahren Sie mehr unter <a href="http://www.tourismussuite.com"><font
color="#990000">www.TourismusSuite.com</font></a>
</font></p>
--<br>
<font face="Arial" size="2">
<strong>Ralf Emanuel</strong><br>
Gesch&auml;ftsf&uuml;hrer<br>
<br>
inexweb ralf emanuel GmbH<br>
Hamtorstra&szlig;e 16<br>
D-41460 Neuss<br>
Fon: +49 (0) 21 31 / 3 66 60-70<br>
Fax: +49 (0) 21 31 / 3 66 60-88<br>
<a href="http://www.inexweb.de"><font color="gray">www.inexweb.de</font></a></font>
<p>--<br>
<font face="Arial" size="2">
Gesch&auml;ftsf&uuml;hrer: Ralf Emanuel<br>
Handelsregister: HRB 10160, Amtsgericht Neuss<br>
</font></p>
</div>
</body>
</html>

Attachment Content-Type Size
unknown_filename text/html 2.4 KB

From: Ralf Emanuel <emanuel(at)inexweb(dot)de>
To: Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at>
Cc: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Wie überprüfe ich ein Backup Prozess mit pg_dump
Date: 2008-11-02 15:26:54
Message-ID: 490DC6BE.30608@inexweb.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

Hallo Laurenz Albe,

ich habe den ganzen Prozess noch einmal aufgerollt und die
Fehlermeldungen recherchiert.
Datenbank: 8.2.7
OS: Linux
Dump Befehl: pg_dump -f datei.dump -Fc -Z9 -EUNICODE <tabelle>

Bei der ersten DB wird folgender Fehler ausgeworfen:
--snip--
pg_dump: Error message from server: ERROR: could not access status of
transaction 264714840
DETAIL: Could not open file "pg_clog/00FC": Datei oder Verzeichnis
nicht gefunden.
pg_dump: The command was: COPY public.systemlog (systemlog_id, lvl,
datum, loggername, servername, nachricht, daten, klasse, methode,
stacktrace, flag, flag_benutzer_id) TO stdout;
--snip--

Bei einer weiteren DB wird folgender Fehler ausgeworfen:
--snip--
pg_dump: SQL command failed
pg_dump: Error message from server: ERROR: invalid page header in block
4782 of relation "pg_toast_14155985"
pg_dump: The command was: COPY public.cms_online_contents (content_id,
resource_id, file_content) TO stdout;
--snip--

Weitere DBs auf dem gleichen Server können ohne Probleme gedumped werden.

Vorab Danke für Eure Unterstützung.

Gruß

RE

Albe Laurenz schrieb:
> Ralf Emanuel wrote:
>
>
>> es geht mir nicht um die Fehlermeldung.
>>
>
> ... also auch nicht um die Lösung.
>
>
>> Ich möchte nur wissen, wie und ob pg_dump ein return value
>> zurück gibt mit dem überprüft werden kann ob der Dump sauber
>> ist. In der Doku steht nichts dazu. Gerne auch alternative
>> Vorschläge.
>>
>
> Naja, das ist ganz einfach.
>
> Wenn pg_dump der Meinung ist, daß der Dump nicht gut ist, gibt es einen
> Fehler zurück (z.B. weil das Filesystem voll ist).
>
> Wenn pg_dump der Meinung ist, daß der Dump gut ist, meldet es Erfolg.
>
> Wenn pg_dump einen Softwarefehler hat, der bewirkt, daß der Dump nicht
> erfolgreich eingespielt werden können wird, meldet es Erfolg, weil es das
> nicht wissen kann.
>
> Wenn der Benutzer einen Unsinn machen wird, wenn er den Dump einspielt,
> und es deshalb fehlschlagen wird, meldet pg_dump trotzdem einen Erfolg,
> weil auch das kann es nicht voraussehen.
>
>
> Wenn wir Ihnen glauben können, daß pg_dump Erfolg gemeldet hat, kann es
> nicht der erste Fall sein.
>
>
> Um herauszubekommen, welcher der verbleibenden möglichen Fälle zutrifft,
> brauchen wir Information und ... erraten ...
>
> Die Fehlermeldung! Bingo!
>
> Liebe Grüße,
> Laurenz Albe
>
>

--

? TourismusSuite - Ihre Destination im Griff
++ Internet Booking Engine ++ Touristisches Content Management ++
Destinations Management

Erfahren Sie mehr unter www.TourismusSuite.com
<http://www.tourismussuite.com>

--
*Ralf Emanuel*
Geschäftsführer

inexweb ralf emanuel GmbH
Hamtorstraße 16
D-41460 Neuss
Fon: +49 (0) 21 31 / 3 66 60-70
Fax: +49 (0) 21 31 / 3 66 60-88
www.inexweb.de <http://www.inexweb.de>

--
Geschäftsführer: Ralf Emanuel
Handelsregister: HRB 10160, Amtsgericht Neuss


From: "Albe Laurenz" <laurenz(dot)albe(at)wien(dot)gv(dot)at>
To: "Ralf Emanuel *EXTERN*" <emanuel(at)inexweb(dot)de>
Cc: <pgsql-de-allgemein(at)postgresql(dot)org>
Subject: RE: [pgsql-de-allgemein] Wie überprüfe ich ein Backup Prozess mit pg_dump
Date: 2008-11-03 08:24:45
Message-ID: D960CB61B694CF459DCFB4B0128514C202ACEFA9@exadv11.host.magwien.gv.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

Ralf Emanuel schrieb:
> ich habe den ganzen Prozess noch einmal aufgerollt und die Fehlermeldungen recherchiert.
> Datenbank: 8.2.7
> OS: Linux
> Dump Befehl: pg_dump -f datei.dump -Fc -Z9 -EUNICODE <tabelle>
>
> Bei der ersten DB wird folgender Fehler ausgeworfen:
> --snip--
> pg_dump: Error message from server: ERROR: could not access status of transaction 264714840
> DETAIL: Could not open file "pg_clog/00FC": Datei oder Verzeichnis nicht gefunden.
> pg_dump: The command was: COPY public.systemlog (systemlog_id, lvl, datum, loggername, servername, nachricht, daten, klasse, methode, stacktrace, flag, flag_benutzer_id) TO stdout;
> --snip--
>
> Bei einer weiteren DB wird folgender Fehler ausgeworfen:
> --snip--
> pg_dump: SQL command failed
> pg_dump: Error message from server: ERROR: invalid page header in block 4782 of relation "pg_toast_14155985"
> pg_dump: The command was: COPY public.cms_online_contents (content_id, resource_id, file_content) TO stdout;
> --snip--
>
> Weitere DBs auf dem gleichen Server können ohne Probleme gedumped werden.

Wenn pg_dump in diesem Fall einen Return Code "0" zurückgegeben hat, dann ist tatsächlich
etwas faul. In diesem Fall sollte definitiv etwas anderes zurückgegeben werden.

Die beiden obigen Fehler weisen eindeutig auf eine kaputte Datenbank hin.

Der erste Fehler könnte durch das versehentliche Löschen eines Files entstanden sein,
aber speziell der zweite Fehler deutet für mich klar auf einen Fehler im Filesystem oder
in der Hardware hin.

Ich würde schnell einen Dump ziehen (auch wenn nicht alles mitkommt), dann den Server stoppen
und ein Filesystem-Backup machen (tar o.ä.).

Dann würde ich das Filesystem überprüfen und auch überprüfen (lassen, denn von Hardware
verstehe ich nichts) ob die Festplatte kaputt ist. Es schaut nämlich sehr so aus.

Liebe Grüße,
Laurenz Albe