Tabellen auf Änderung überwachen

Hallo zusammen,

ich habe ein kleines, bzw für mich ein riesiges Problem.
Ich habe mir privat auf einem Raspberry mit Raspbian einen CalDav und CardDav Server, also einen Termin- und Adressbuchserver aufgesetzt.

Nun würde ich gerne bei jeder Änderung an einer Tabelle ( also einfügen eines neuen Termins bzw einer Adresse, oder aber bei Änderung von Terminen bzw Adressen) mein Backup Script laufen lassen. Das BU Script funktioniert soweit auch. Nur muss ich das Script immer händisch bzw mit cron in festgelegten Zeitabständen ausführen.
Dies macht in meinen Augen wenig Sinn da sich die Daten zB bei Adressen eigentlich nur selten Ändern. Bei Terminen wird auch nicht jeden Tag ein neuer dazu kommen. Da macht es mehr Sinn nur bei einer Änderung ein Backup der entsprechenden Tabellen zu machen.

Bietet PostgreSQL eine Funktion auf die ich zurückgreifen kann?

Für eure Hilfe bin ich jetzt schon dankbar

Viele Grüße
aramis

Bei jeder Änderung ist aber auch Quatsch. Ein Update sind immer 2 Änderungen: ein DELETE und ein INSERT. (okay, erfolgt atomar). Egal.

Ich denke, Du suchst einer TRIGGER, der bei einer Änderung (Insert/Delete/Update) ein Flag in einer Tabelle setzt. Via Cron schaust Du, ob das Flag gesetzt ist. Falls ja: Backup starten.

Danke für deine schnelle Antwort.
Problem ist das ich mit CRON nur zeitlich festgelegt abfragen kann.

Sollten in dem Zeitraum mehrere Änderungen an dem gleichen Datensatz vorgenommen worden sein, wird nur der beim Ausführen des Crons aktuelle Datensatz ins BU verschoben. Jedoch nicht die Änderungen die zwischen dir vorgenommen worden sind.

Du kannst nicht backuppen, wenn sich der Inhalt schnell ändert, ein Backup ist immer ein Snapshot. Was Du machen kannst, um auch Änderungen zu protokollieren: tablellog von ads verwenden.

http://andreas.scherbaum.la/blog/archives/100-Log-Table-Changes-in-PostgreSQL-with-tablelog.html

super danke dir - werde mal am Wochenende ausprobieren ob ich damit ans Ziel komme - ich werde dann im laufe der nächsten Woche berichten.

Hi. Falls es über Pg 9.3 läuft hätte ich auch noch ne Alternative basierend auf PL/pqSQL: https://github.com/fxku/audit