phpbar.de logo

Mailinglisten-Archive

[php] MySQL-Speicherplatz zu Ende

[php] MySQL-Speicherplatz zu Ende

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Die Jul 4 15:42:53 CEST 2006


Hallo Michael,

Lutz Zetzsche schrieb:
> postneutral. Michael Felstau schrieb:
>> Hallo Lutz,
>>
>>
>>> hast Du denn einen dedizierten Server, vielleicht sogar Root-Server,
>>> den
>>> Du ganz alleine nutzt? Dann hast Du relativ gute Möglichkeiten, das
>>> herauszufinden.
>>>
>> Nein es ist (noch) einfacher Webspace bei Schlund.
>>> Die Aussage des Support-Mitarbeiters ist etwas irreführend. Je nach
>>> Serverkonfiguration hätte Dein PHP-Skript schon die Möglichkeit,
>>> herauszufinden, ob auf der Festplatte noch genug Speicherplatz
>>> vorhanden
>>> ist. Das wäre natürlich unabhängig von der Datenbankabfrage.
>>>
>> Es geht hier wohl um die Begrenzung des Speicherplatzes für die
>> Datenbank durch Schlund auf deren Datenbankserver.
>>> Jetzt kenne ich Deinen Server und die entstehenden Datenmengen nicht,
>>> so
>>> daß ich nicht weiß, ob bei Dir eine Festplattenpartition während eines
>>> Rebuilds voll laufen kann. Wenn das so ist, müßtest Du halt immer an
>>> kritischen Stellen den noch verfügbaren Festplattenplatz auf den
>>> betreffenden Partitionen prüfen.
>>>
>> Ich kenne die Datenmengen auch nicht. Anscheinend war die Datenbank
>> schon voll, als ich den Rebuild gestartet habe. Neu geschrieben wurde
>> anscheinend "nur" die Haupttabelle und eine mit temporären Dateien. Also
>> nicht die menge an Daten.
>
> dann hast Du wohl seitens des Hostingpaketes nicht so gute Karten, obwohl
> ich trotzdem Probleme habe zu glauben, daß es gar keine Möglichkeiten
> gibt, über MySQL selbst herauszufinden, ob der Speicherplatz ausgeht...
> Vielleicht gibt es ja doch einen Weg, wobei dann wieder die Frage ist, ob
> Dein Hostingpaket den zuläßt... Aber frage doch mal auf einer MySQL-Liste
> nach. Ist etwas sehr speziell, das Thema, wenn auch sehr interessant. Also
> wenn Du eine Lösung findest, wäre ich interessiert, sie zu erfahren. :-)

ich habe schon mal einen Lösungsansatz, nicht 100% generisch und auch
nicht allumfassend, aber immerhin.

Der SQL-Befehl "show table status;" liefert Dir Daten zu allen Tabellen
der aktuellen Datenbank, inklusive Data_length und Index_length. Wenn Du
alle Werte von Data_length und Index_length addierst, dann kennst Du
ungefähr die Datenmenge in Deiner Datenbank, also auf der Festplatte. Wenn
Du jetzt noch Dein Speicherlimit kennst, dann kannst Du die Werte
abgleichen und hast dann einen Anhaltspunkt, wann es kritisch werden
könnte. Jetzt rein datenbanktechnisch. Wenn die Partition aus anderen
Gründen voll läuft, läuft diese Prüfung natürlich ins Leere.

Viele Grüße
Lutz


php::bar PHP Wiki   -   Listenarchive