Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-de-allgemein by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group