vServer: seit 3 Tagen regelmäßig korrupte MySQL-Tabellen

  • Zitat von bebbo;9711

    ramstein: was machst Du/der Server denn alle 15-20 Tage, was Konni jede Nacht macht?


    Wenn ich das mal wüsste.
    Ich sehe da keinerlei Übereinstlimmung mal abgesehen vom auftauchenden Fehler. Ich habe das Problem aber schon länger, nicht erst seit dem Kernelupdate.

  • Welche Kernel habt ihr denn momentan am Start? Bei mir ist es dieser:


    # uname -a
    Linux v230211191.yourvserver.net 2.6.29.6-vs2.3.0.36.14-beng #1 SMP Tue Aug 18 08:43:50 BST 2009 x86_64 GNU/Linux


    Heute Nacht war es mal wieder so weit. Dieses Mal schon um 01:45 Uhr.



    Ich benutze zurzeit nur eine einzige InnoDB-Datenbank (roundcube). Diese werde ich heute mal auf MyISAM umstellen und dann InnoDB abschalten.


    Das Update auf Lenny habe ich noch nicht gemacht, weil ich heute Morgen früh aufstehen musste und dann die Nacht nicht so lange aufbleiben konnte.


    Gruß
    Konni

  • Zitat von Konni;9717

    Welche Kernel habt ihr denn momentan am Start? Bei mir ist es dieser:


    # uname -a
    Linux v230211191.yourvserver.net 2.6.29.6-vs2.3.0.36.14-beng #1 SMP Tue Aug 18 08:43:50 BST 2009 x86_64 GNU/Linux


    Linux v231231254.yourvserver.net 2.6.29.6-vs2.3.0.36.14-beng #1 SMP Sat Aug 8 19:43:49 BST 2009 x86_64 GNU/Linux


    Zitat von Konni;9717

    Ich benutze zurzeit nur eine einzige InnoDB-Datenbank (roundcube).


    dito


    hm .... nicht das das am Roundcube liegt...


    Meine Version:


    RoundCube Webmail IMAP Client |
    Version 0.3.1-20091031

  • Das kann ich mir nicht vorstellen. Zumal ich Roundcube nur gaaanz selten benutze, wenn ich mal nicht am eigenen Rechner sitze.


    Installiert habe ich wohl noch eine etwas ältere Version:
    RoundCube Webmail IMAP Client
    Version 0.2.2


    Gruß
    Konni

  • Wie sollte eine PHP-Webanwendung das denn verursachen? Roundcube sendet doch nur ganz normale MySQL-Queries ab wie jede andere PHP-Anwendung auch. Roundcube modifiziert doch nichts an den MySQL-Dateien und Ordnern ;)


    Habt ihr/du eigentlich bei Netcup schon einmal nachgefragt wegen diesem Problem? Ich habe den Thread jetzt nicht immer verfolgt, aber ich könnte mir vorstellen, dass irgendetwas am Node den Fehler produziert und/oder vllt. der Raid-Controller/HDD des Nodes dafür verantwortlich ist. Ist natürlich nur eine Vermutung, aber fragen kostet ja nichts :o



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Zitat von killerbees19;9720


    Habt ihr/du eigentlich bei Netcup schon einmal nachgefragt wegen diesem Problem? Ich habe den Thread jetzt nicht immer verfolgt, aber ich könnte mir vorstellen, dass irgendetwas am Node den Fehler produziert und/oder vllt. der Raid-Controller/HDD des Nodes dafür verantwortlich ist. Ist natürlich nur eine Vermutung, aber fragen kostet ja nichts :o


    Ich hatte schonmal nachgefragt, ob ein Festplatten- oder Speicherproblem vorliegt.


    Die kurze Antwort:

    Zitat

    laut Monitoring sind keine Festplattenfehler oder Memory-Fehler auf dem von Ihnen genutzten Node bekannt. Eventuelle Fehlermeldungen werden alle 10 Minuten ausgewertet.


    Gruß
    Konni

  • die Ursache ist aus den geposteten Logs jedenfalls nicht ersichtlich:


    Zitat

    Nov 20 01:45:03 v230211191 mysqld_safe[353]: Number of processes running now: 0
    Nov 20 01:45:03 v230211191 mysqld_safe[355]: restarted


    Die Frage ist doch:
    Warum sind alle MySql processe weg?


    Üblicherweise läuft doch MySql jahrelang durch. (Automatische Updates? AUS!)


    Bebbo

  • Tja, wenn ich das wüsste, hätte ich das Problem bestimmt schon beheben können. Selbst mit aktivierten MySQL-Log steht nichts drin, außer, dass MySQL neu gestartet wurde.


    Seit dem Update auf Lenny ist das ganze eher schlimmer geworden. Der MySQL-Server stürzt jetzt nachts komplett ab, während ja unter Etch nur postfix nicht mehr auf die Datenbank zugreifen konnte.


    MySQL hat jetzt auch irgendwas beim Start zu meckern:


    Code
    # /etc/init.d/mysql restart
    Stopping MySQL database server: mysqld.
    Starting MySQL database server: mysqld.
    Linking mysqld.sock to the postfix-jail.
    Checking for corrupt, not cleanly closed and upgrade needing tables..
    v230211191:/etc/mysql# /usr/share/mysql/debian-start.inc.sh: line 21: MYSQL: unbound variable
    /usr/share/mysql/debian-start.inc.sh: line 25: MYSQL: unbound variable


    Gerade eben habe ich noch die einzige InnoDB-Datenbank zu MyISAM konvertiert und InnoDB abgeschaltet. Mal schauen, was heute Nacht passiert.


    Gruß
    Konni

  • Zitat von Konni;9831

    v230211191:/etc/mysql# /usr/share/mysql/debian-start.inc.sh: line 21: MYSQL: unbound variable
    /usr/share/mysql/debian-start.inc.sh: line 25: MYSQL: unbound variable


    Dieser Fehler wird meistens durch überschriebene (oder nicht angepasste) Startscripte in /etc/mysql verursacht, oder die debian-start.inc.sh selbst ist veraltet/falsch. Am besten alle gesetzten Variablen kontrollieren und vergleichen ;)



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Zitat von killerbees19;9839

    Dieser Fehler wird meistens durch überschriebene (oder nicht angepasste) Startscripte in /etc/mysql verursacht, oder die debian-start.inc.sh selbst ist veraltet/falsch. Am besten alle gesetzten Variablen kontrollieren und vergleichen ;)


    Hallo Christian,


    die Variable $MYSQL ist nicht gesetzt. Ich hätte das ja noch händisch erledigt, weiß aber gar nicht, auf welchen Wert die gesetzt werden soll. Dem Shell-Skript nach vermute ich, dass dort der Pfad zur mysql-binary gesetzt werden soll.


    Kann das jemand bestätigen / widerlegen?


    Gruß
    Konni

  • Nachtrag:
    Das kleine MySQL-Problem hat sich schon erledigt:

    Code
    MYSQL="/usr/bin/mysql --defaults-file=/etc/mysql/debian.cnf"

    Das hat in der /etc/mysql/debian-start gefehlt.


    Mal schauen, was heute Nacht passiert. ;)


    Gruß
    Konni

  • Hallo,


    bei mir tritt das Problem auch auf, allerdings schon seit längerem im 3 - 4 Wochen-Abstand mit genau den selben Symptomen.


    Werde jetzt auch mal die vorgeschlagenen Änderungen vornehmen und schauen, ob es sich bessert.


    Cheers, u6f6o

  • Statt MySQL solltet Ihr mal postfix unter die Lupe nehmen:


    Postfix will offensichtlich mehr Verbindungen von MySQL als da sind, weil postfix selbst die alten Verbindungen noch benutzt/nicht freigibt/warum auch immer.


    Ob es an Postfix liegt kann man prüfen:


    Statt einem Restart von MySQL müsste demnach auch ein Stoppen aller Postfix Prozesse und ein Neustart von Postfix dazu führen, dass es für eine gewisse Zeit wieder funktioniert.


    Bebbo

  • Erste gute Nachricht:
    Der Server lief heute Nacht mit der abgeschalteten InnoDB-Engine einwandfrei durch und funktioniert immer noch bestens. ;)


    bebbo
    Auch das Neustarten von postfix korrigierte ebenso wie das Neustarten von MySQL den Fehler. Ich weiß aber nicht, ob das nur an der postfix-jail Verlinkung gelegen hat. Wird diese beim postfix-Neustart auch neu angelegt?


    Welcher Wert gilt denn in der my.cnf bei max connections, wenn diese Zeile auskommentiert ist?


    Bleibt die Frage: Was ist jetzt ohne die InnoDB-Engine anders, dass heute Nacht zum ersten Mal Ruhe ist? Vor allem: Warum sollte postfix mitten in der Nacht so viele Verbindungen zu MySQL aufbauen? Ich bekomme nachts so gut wie keine Mails (außer die DenyHosts-Reports).


    Gruß
    Konni

  • Schau dir einmal die Logs von Postfix (/var/log/mail.*) an, vllt. sendet ja jemand sehr viele Anfragen an deinen Mailserver in dieser Zeit. Standardwert für max_connections ist übrigens 100.



    MfG hristian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Das hatte ich ja schon gemacht ... da passiert aber so gut wie nichts.


    Freitag:


    Wie man sieht, war nicht viel los vor dem Crash ...


    Gruß
    Konni

  • Zitat

    Auch das Neustarten von postfix korrigierte ebenso wie das Neustarten von MySQL den Fehler.


    Dann liegt die Ursache zu 100% bei postfix!


    Und wie ich bereits zu den netstat.txt Attachments sagte: Die Verbindungen die alle noch offen sind, kamen (fast?) alle über TLS rein.


    Was würde ich tun (falls ich jemals postfix verwenden würde)?


    - Die Grundkonfiguration von postfix verwenden.
    - Alle eigenen Änderungen zur Grundkonfiguration durchgehen
    - Alle Meldungen von postifx (und seinen Freunden) durchgehen
    - Hilfe zur Konfiguration von postfix suchen
    - ...
    und falls nichts davon hilft
    - etwas anderes als postfix verwenden


    Bbebo

  • Hm ...


    Ich habe glaube ich einzig in der main.cf die Einstellungen zu TLS geändert - das müsste dieser Teil sein:


    Code
    # tls config
    smtpd_use_tls = yes
    smtp_tls_note_starttls_offer = yes
    smtpd_tls_key_file = /etc/ssl/private/***.key
    smtpd_tls_cert_file = /etc/ssl/certs/***.crt
    smtpd_tls_loglevel = 1
    smtpd_tls_received_header = yes
    smtpd_tls_session_cache_timeout = 3600s
    tls_random_source = dev:/dev/urandom
    tls_random_prng_update_period = 3600s


    Das lief ja aber auch über Monate hinweg einwandfrei. Die master.cd habe ich - soweit ich mich erinnere - nicht angefasst.


    tlsmgr lässt laut master.cf nur einen Prozess zu. Kann es sein, dass dann ein Prozess blockiert und somit die darauffolgenden Mails nicht mehr ausgeliefert werden?


    Denn in meiner ersten netstat.txt sieht man, dass python zu diesem Zeitpunkt aktuell mit postfix verbunden ist (wird wohl eine Report-Mail von denyhosts sein).


    Auf TLS würde ich aber ungern verzichten. Das ist auch immerhin einer der Gründe, warum ich einen eigenen vServer als Mail-Server einsetze.


    Gruß
    Konni

  • TLS innerhalb SMTP/POP3 sollte man nicht verwenden!!!


    Stattdessen bietet man dedizierte Services mit SSL auf den entrpechenden Ports (465/995 bzw 993 für simap) an.


    Bebbo


    PS: wozu E-Mails von denyhost? Kriegst Du nicht genug SPAM?
    PPS: der Titel des Threads sollte nun wohl eher "seit 3 Tagen mache ich mein MySQL kaputt" lauten ;)