Speicherplatz voll - was dann?

Hallo,

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.

Gruß ScooB

Dann passieren ganz schlimme Dinge …

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.

Andreas

Danke für die Antwort.

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.

Gruß ScooB

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.

4 GByte sind irgnwie ned viel …


Andreas

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

Du kannst einen Tablespace mit Quota anlegen. Als Beispiel.

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.


Andreas

Richtig. Aber es reisst nicht gleich das Betriebssystem mit.

Du hast beim Lesen “das System (Windows XP Embedded) ist auf einer anderen Platte.” überlesen, stimmts?

Andreas

Ja, habe ich in der Tat.
Nein, Windows supporte ich nicht.
Nein, eine ausgewachsene Datenbank auf einem Embedded System macht keinen großen Sinn.

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.

Gruß Uwe

SQLite räumt aber auch nicht automatisch die Daten weg - du kannst also in das gleiche Problem hineinlaufen: Festplatte voll.

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.