MySQL-Quota / Limits

Dieses Thema im Forum "Installation und Konfiguration" wurde erstellt von pilgrims, 14. Juni 2015.

  1. pilgrims

    pilgrims Member

    Besteht aktuell die Möglichkeit irgendwo so etwas ähnliches wie Quota für MySQL-Datenbanken zu setzen? Kann auch eine tägliche Prüfung der DB-Größe mit Mailbenachrichtigung sein.

    Ich hatte kürzlich gleich 2x das Problem gehabt, dass in Kundendatenbanken Tabellen mit >20 GB (> 70 Datensätze) Datenvolumen aufgelaufen sind. Würde gerne rechtzeitig handeln, bevor ein Server quasi stillsteht.

    Edit: es sollte heißen "> 70 Mio Datensätze"
     
    Zuletzt bearbeitet: 18. Juni 2015
  2. florian030

    florian030 Member

    Dafür musst Du wohl auf 3.1 warten. Du kannst aber bis dahin bspw. einen Cronjob laufen lassen, der die Größe der Datenbanken ermittelt und dir dann eine Mail schickt,
     
  3. pilgrims

    pilgrims Member

    Ist dieses Feature gemeint FS#2876 - Add DB-User limit ?
    Die Roadmap zeigt den Stand 55% der Version 3.1 an. Das könnte also doch noch eine Weile dauern.

    Danke für den Hinweis mit dem Cronjob. So etwas ähnliches hatte ich mir zwar schon gedacht...
     
  4. florian030

    florian030 Member

    Nein, das meinte ich nicht. Damit kann Connections / Requst begrenzen. Es gibt in 3.1 die Möglichkeit, die max. Größe einer Datenbank zu definieren und Quota-Warnings analog zu den Web / Mail-Quotas zu verschicken. Das geht über
    SELECT SUM(data_length+index_length) FROM information_schema.TABLES WHERE table_schema= 'DATABASE';
     
  5. JeGr

    JeGr Member

    Gibt es dann auch die Möglichkeit nur ein Warn-Level zu setzen aber kein hartes "geht nicht" Limit? Es gibt nichts unschöneres, als wenn ein großes Query abbricht oder eine ganze Transaction gegen die Wand fährt, nur weil sie ein paar Byte mehr bräuchte als das Limit sind. Und ich habe selten in Web Paketen DB Size Limits gesehen... (was nicht heißt, dass das Feature nicht sinnvoll ist :))
     
  6. florian030

    florian030 Member

    Ich wüsste nicht, was für ein QUERY die Größe beeinflussen sollte.... und es werden nur Warnungen als Mail verschickt. Man kann nicht eben mal so dem User dann die Rechte für die DB entziehen, weil er dann die Datenmenge auch nicht mehr reduzieren könnte.
     
  7. JeGr

    JeGr Member

    Deshalb fragte ich ja nach. Es gäbe natürlich schon Möglichkeiten, ein hartes Limit durchzusetzen (bei reinem InnoDB bspw. eigenen Tablespace begrenzt auf X MB/GB) aber schön ist das natürlich nicht, wenn ein UPDATE oder INSERT dann gegen die Wand läuft weil die DB am Limit ist (hatte ich früher noch erlebt zu Zeiten, in denen es Leute gab, die händisch die Tablespaces gepflegt haben und nicht auf auto-inc stellen wollten). Warnmeldungen sind natürlich fein, damit man was sieht. Ich kenne Typo3 Entwickler bei denen immer wieder in Live bspw. die Logging Tabelle auf debug steht und dann gigabyteweise Daten belagert, bis das mal jemand abschaltet, ein Truncate über die Tabelle heizt und damit endlich wieder Platz macht (file_per_table sei Dank).
     
  8. florian030

    florian030 Member

    Ich halte es aus verschiedenen Gründen nicht für sinnvoll, reale Quotas für eine Datenbank bzw. für alle Datenbanken eines Kunden zu verwenden. Warn-Mail und gut ist. Du kannst - im Gegensatz zum Webspace - nicht die DB einfach mal sperren. Dann kann die nämlich nicht mehr geleert werden.
     
  9. JeGr

    JeGr Member

    @florian030 Absolut deiner Meinung. Da ichs aber schon leidlich anders erlebt habe, wollte ich nur nachfragen ;)
     
  10. Till

    Till Administrator

    Eine sinnvolle Quota Implemetierung kann es nur geben wenn MySQL / Mariadb sie irgendwann mal intern implementiert, daher haben wir das auch nur als "warn System" eingebaut.
     
  11. pilgrims

    pilgrims Member

    Wenn eine Warnmail ausgelöst wird, ist es völlig ausreichend. Damit sollte jeder gut leben können.
    Nicht alles, was (eines Tages) technisch möglich ist, muss auch zwingend umgesetzt werden.
     

Diese Seite empfehlen