Re: Re: FEHLER: konnte auf den Status von Transaktion XY nicht zugreifen

From: Susanne Ebrecht <susanne(at)2ndquadrant(dot)com>
To: Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at>
Cc: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Re: FEHLER: konnte auf den Status von Transaktion XY nicht zugreifen
Date: 2012-02-20 10:59:42
Message-ID: 4F42279E.5030405@2ndquadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

Am 20.02.2012 10:46, schrieb Albe Laurenz:
> Susanne Ebrecht schrieb:
>> Am 14.02.2012 10:53, schrieb Andreas Tille:
>>> Was sind das für Dateien ig pg_clog und warum können die verschwinden?
>>> Viele Grüße Andreas.
>> pg_clog ist in der Regel leer. Da werden nur dann Commit-Logs
>> ausgelagert, wenn der RAM nicht reicht.
> Wenn das war wäre, und es gäbe einen Crash, wie würde das System
> dann den Commit-Status von Transaktionen herausfinden, die vor dem
> letzten Checkpoint passiert sind?

Lass es mich mal von vorne erkläre:

Von prepared Transactions abgesehen ist, arbeitet SQL nach dem
Ein-Phasen-Commit-Prinzip. Heisst Du schickt "Commit" und bekommst "ACK"
zurück,
wenn es geklappt hat.

Du startest eine Transaktion -
Zwischenschritte und so weiter werden im RAM festgehalten und wenn RAM
nicht reicht,
in pg_clog bzw. pg_subtrans ausgelagert. Subtransaktionen werden - je
nach Art der Subtransaktion
entweder in pg_clog oder in pg_subtrans ausgelagert. Das kommt auf die
Subtransaktion an.

Wenn Du das Commit abfeuerst - dann wird alles permanent in pg_xlog
gespeichert.
Erst wenn alles permanent (auf der Festplatte) in pg_xlog abgelegt
wurde, bekommst Du
das "ACK" zurück. Im psql z.B. bekommst Du dann den Prompt wieder.
Erst dann gilt es als committed.

Vorausgesetzt natürlich, dass Du synchronous_commit nicht abgeschaltet hast.

Wenn Dir der Server abraucht, bevor oder während des Commits - dann ist
die Transaktion
verloren. Dann hast Du aber auch keine Bestätigung bekommen, dass die
Transaktion abgeschlossen
wurde.

Susanne

--
Dipl. Inf. Susanne Ebrecht - 2ndQuadrant
PostgreSQL Development, 24x7 Support, Training and Services
www.2ndQuadrant.com

In response to

Responses

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Nicolas Barbier 2012-02-20 12:24:30 Re: Re: FEHLER: konnte auf den Status von Transaktion XY nicht zugreifen
Previous Message Thomas Markus 2012-02-20 10:20:59 Re: Re: FEHLER: konnte auf den Status von Transaktion XY nicht zugreifen