ich habe das eine kleine Frage.
Was passiert wenn man nur eine bestimmte Speicherkapazität für eine Datenbank hat und diese dann verbraucht ist?
Mir geht es darum das kontinuierlich Daten in die Datenbank geschrieben werden sollen und ich wissen wollte was dann passiert wenn kein Speicherplatz vorhanden ist.
Ich kann zwar mit Triggern dagegen wirken und einen bestimme Anzahl an Einträgen zulassen aber ich würd gern wissen ob PostgreSQL das auch selbst vollzieht oder so, sprich das wenn voll ist das er dann selbstständig die Daten löscht.
Oder gibt es noch andere Methoden wie man soetwas verhinder kann.
Im Ernst: die die Platte voll ist, crasht das System. Das kann sogar dann passieren, wenn Du mit einem TRIGGER nur eine bestimmte Anzahl an Datensätzen zuläßt, dead tupel sind hier das Stichwort.
Hat Deine Frage einen konkreten Hintergrund?
PS.: hatte mich erst verklickt und meine Antwort in den Text des Fragestellers reingeschrieben, sorry.
Es geht halt darum das ich Daten rund um die Uhr erfasse die Datenbankdateien sind auf einer 4GB Platte dann untergebracht, das System (Windows XP Embedded) ist auf einer anderen Platte.
Ich würde gern wissen welche möglichkeiten ich habe, wenn die Platte voll ist, damit die erfassung weiterläuft. Die alten Daten können dann gelöscht werden bzw. das wenn ein neuer Eintrag kommt der älteste gelöscht wird.
Interessiert mich welche Ansätze zur Lösung es für so ein Problem gibt.
Du könntest partitionieren (nach Datum) und alte Partitionen halt löschen. Unter Linux/*NIX könnte man da mit CRON einiges machen, was Dir Windoze da bietet mußt halt selber rausfinden.
ok hätte gedacht das es vom DBMS aus Einstellungsmöglichkeiten bietet die so etwas zulassen
ich glaube mit das da Trigger dann doch die bessere Lösung sind
wie sieht denn das in Anderen DBMS aus?? MySQL, MS SQL Server ?
ist extra so gedacht mit den 4gb aber das sollte schon für eine längere Zeit halten sind nur Messwerte die gespeichert werden
Das löst glaube ich nicht sein Problem. Er hat eine Platte mit N GB, es ist egal, ob die Platte mit N GByte voll ist oder ich da eine Quota von N GByte lege - wenn das Ding voll ist, wird PG hart auf die Nase fallen.
Wäre das Linux könnte ich dir die rrd-tools empfehlen, die machen automatisch eine Rotation in ihrer DB. Aber ob das unter Windows geht, weiß ich nicht. Vielleicht könntest du sqlite3 verwenden, das ist klein und schlank und wird gerne für so embedded-Sachen genutzt. Gibts AFAIR auch unter Windows.
Richtig, aber der administrative Overhead ist deutlich kleiner. Mir fällt aber auch nichts ein, was automatisch Daten weghaut. Ich denke, man wir sich da je nach Anforderungen was selbst stricken müssen. Vorschläge gabs ja schon dazu.
Grüssle Uwe
EDIT: Hier ist noch was: MongoDB
Das steht was von gedeckelten Sammlungen und Ringspeicher, könnte eine Möglichkeit sein.