Lösung zum SQL Database Problem?

  • Dieser Fehler nervt ja manchmal ganz schön und tritt in regelmäßigen Abständen auf. Ich stelle mir die Frage, ob man da nicht vielleicht doch etwas dagegen machen kann. Ich habe mir gerade mal den HTML-Quelltext der SQL-Fehlerseite angeschaut. Da steht Folgendes :


    <br><b>mysql error:</b> User v112060 already has more than 'max_user_connections' active connections


    Also das sagt aus, dass es bei MySQL eine maximale Anzahl von gleichzeitigen Verbindungen gibt, die auf die Datenbank zugreifen können, die In diesem Fall überschritten ist.


    Nun tritt dieser Fehle aber nicht nur zu Zeiten auf, wo vielleciht besonders viel los ist sondern auch nachts, wenn sich nur 5 bis 10 Benutzer tummeln.
    Also liegt das Problem anders. MySQL benutzt sogennnte persistente Datenbankverbindungen, um die Zugriffe effizienter und performanter zu gestalten. Das ist eine tolle Lösung, zwingt aber den Programmierer, darauf zu achten, dass eine einmal geöffnetete persistente Datenbnk-Verbindung auch wieder geschlossen wird.


    Leider sind verschiedene BB-Software-Pakete da etwas schlampig programmiert. Offenbar leider auch die Büchereule. Somit erzeugen gewisse Zugriffe immer wieder neue offene Datenbankverbindungen, die nicht mehr geschlossen werden. Irgendwann ist das Maximal-Limit erreicht und die Datenbank ist nicht mehr erreichbar.


    Wie sich der Server dann erholt, kann ich nicht genau sagen, aber vermutlich läuft ein Überwachungs-Tool, welches in diesem Falle einen Neustart der Datenbank bewirkt.


    Mit dieser Diagnose gäbe es meines Erachtens drei Wege da etwas zu beheben:


    1.) Der sauberste Weg, wäre die Programmierung zu kontrollieren und die Übeltäter auszumachen, wo die Datenbankverbindugn nicht freigegeben wird. Laut Internet-Recherche sollen speziell Chat-Anwendugnen im BB-Board da verdächtig sein. Dies ist allerdings auch der aufwändigste und da müsste sich jemand ziemlich intensiv beschäftigen. Also eher eine unwahrscheinliche Variante.


    2.) Man könnte die PHP-Anwendung vielleicht so konfigurieren, dass die Datenbankverbindungen nicht persistent sind, das heißt das bei jeder Datenbankabfrage wird eine Verbindung geöffnet und gleich wieder geschlossen. Das ist allerdings auch nicht wirklich empfehlenswert, denn vermutlich besteht jeder Seitenaufbau aus hunderten Datenbankabfragen. Somit würde man einen gewaltigen Overhead schaffen, der sich vermutlich ungünstig auf die Geschwindigkeit des Seitenaufbaus auswirkt. Aber vielleicht wäre es einen Versuch wert, der ziemlich schnell mal probiert werden kann.


    3.) Da eine Datenbank-Neustart die Verbindungen wieder freigibt, wäre es wahrscheinlich die einfachste Möglichkeit, kontrollierte Datenbank-Neustarts in einem definierten Wartungsfenster automatisiert durchzuführen. Zweimal am Tag sollte ausreichen, wenn man den Wert der maximalen Verbindungen hochsetzen kann, vielleciht auch ein einzelner nächtlicher Neustart vielleicht so früh um 4. Hier wäre es wichtig zu wissen, ob sich dies vom Hosting-Modell überhaupt machen lässt, sprich, ob die Büchereule auf einem gesharten Server gehostet wird oder einem eigenen. Im letzteren Fall sollte dies ggf. in Absprache mit dem Dienstleister kein Problem sein, wenn der Admin Konsolen-Zugriff auf den Server hat.


    Ich halte Möglichkeit 3 für die aussichtsreichste, aber habe keine Ahnung, ob das möglich ist. Was sagt der technische Admin dazu?


    (... dem ich natürlich heute am Weltsystemadministratorentag auch huldigen möchte :anbet Ich weiß, dass das manchmal ein Scheißjob ist ;-) )


    Edit korrigiert Tippfehler

  • Zitat

    Original von arter
    ..... (... dem ich natürlich heute am Weltsystemadministratorentag auch huldigen möchte :anbet Ich weiß, dass das manchmal ein Scheißjob ist ;-) )
    ....


    Was es nicht alles gibt. :wow
    Na dann, herzlichen Glückwunsch. :-]

    Kein Buch ist so schlecht, dass es nicht auf irgendeine Weise nütze.
    (Gaius Plinius Secundus d.Ä., röm. Schriftsteller)

  • Zitat

    Original von Groupie
    Kam mir der Ausfall heute Morgen nur besonders lange vor oder werden die wirklich länger? Besteht da eigentlich irgendwie die Gefahr, dass sich das Forum mal komplett verabschiedet? Also, dass es mehrere Tage nicht erreichbar ist?


    *panisch guck* :lache

    Ailton nicht dick, Ailton schießt Tor. Wenn Ailton Tor, dann dick egal.



    Grüße, Das Rienchen ;-)

  • Wie ich das so aktuell beobachte, scheint die Instabilität zuzunehmen. Und entgegen meiner oben aufgestellten Theorie erholt sich das Forum auch nicht immer gleich nach dem Neustart. Kann man da wirklich nichts machen? Ein Wechsel des Hosting-Dienstleisters vielleicht?

  • Zitat

    Original von Groupie
    Kam mir der Ausfall heute Morgen nur besonders lange vor oder werden die wirklich länger? Besteht da eigentlich irgendwie die Gefahr, dass sich das Forum mal komplett verabschiedet? Also, dass es mehrere Tage nicht erreichbar ist?


    :yikes Das wär ja schrecklich!
    Ich glaube, in den letzten vier Jahren habe ich bis auf sechs, sieben Tage, hier täglich reingeschaut!

  • Leider bin ich Krankheits- und Berufsbedingt nicht so oft online wie ich gerne möchte. Wenn dann aber meine Einloggversuche dauernd fehlschlagen, dann ist das auch nicht sehr prickelnd :-(
    Nach Passworteingabe gehts sehr sehr oft bei mir nicht weiter...alleine heute habe ich mehrere Anläufe gebraucht :-(


    Schade...

    Mögen wir uns auf der Lichtung am Ende des Pfades wiedersehen, wenn alle Welten enden. (Der Turm, S. King)


    Wir fächern die Zeit auf, so gut wir können, aber letztlich nimmt die Welt sie wieder ganz zurück. (Wolfsmond, S. King)


    Roland Deschain