
Ich habe ein altes Ubuntu 8.10 32-Bit mit MySQL 5.0.67.
Es enthält 5,7 GB Daten und wächst täglich um etwa 100 MB.
Vor etwa drei Tagen begann die MySQL-Instanz während des nächtlichen MySQL-Dumps plötzlich und leise abzustürzen (kein Protokolleintrag).
Was könnte die Ursache sein?
Das Upgrade von MySQL ist für mich ein langfristiges Projekt. Sofern in 5.0.67 nicht zufällig ein bestimmter Fehler auftritt, muss ich in diesem Fall wohl einfach die Prioritäten neu setzen.
Ich hoffe, dass jemand mit diesem Problem vertraut ist, da dies eine ziemlich beliebte Version ist, die mit Ubuntu 8.10 gebündelt ist.
Danke
Antwort1
Wird eine sehr große Tabelle oder eine Reihe mittelgroßer Tabellen gesichert? Verwenden Sie die Option -q mit mysqldump? Wird eine große Tabelle gesichert, in die geschrieben wird? Wenn ja, verhindert das Sperren einer großen Tabelle die Ausführung anderer Threads aufgrund der Sperre, was dazu führen kann, dass Ihr Webserver/Ihre Skripte warten müssen, bis der Computer nicht mehr genügend Ressourcen hat.
Möglicherweise verbrauchen Sie den gesamten verfügbaren Speicher für den mysql- oder mysqldump-Prozess, sodass der OOM-Killer (Out of Memory) im Kernel den Prozess beendet. Sehen Sie sich dazu kern.log, syslog, Nachrichten für die Zeichenfolge OOM oder etwas Ähnliches an:
Mar 29 16:51:10 xxxxxx kernel: 160688 total pagecache pages
Mar 29 16:51:10 xxxxxx kernel: 2048 pages in swap cache
Mar 29 16:51:10 xxxxxx kernel: Swap cache stats: add 25966, delete 23918, find 150791/151181
Mar 29 16:51:10 xxxxxx kernel: Free swap = 8228916kB
Mar 29 16:51:10 xxxxxx kernel: Total swap = 8297564kB
Mar 29 16:51:10 xxxxxx kernel: 2228208 pages RAM
Mar 29 16:51:10 xxxxxx kernel: 183093 pages reserved
Mar 29 16:51:10 xxxxxx kernel: 2208385 pages shared
Mar 29 16:51:10 xxxxxx kernel: 1864656 pages non-shared
Mar 29 16:51:10 xxxxxx kernel: mysqld: page allocation failure. order:1, mode:0x20
Antwort2
Wenn in den Protokollen kein Eintrag vorhanden ist, empfehle ich Ihnen, zu versuchen, den Mysqldump zu strace.
strace -f -o strace.output mysqldump your_mysqldump_options
Schauen Sie sich dann die letzten Zeilen der Datei strace.output an. Normalerweise wird dadurch der Weg klarer und es ist eine gute Möglichkeit, mit der Fehlerbehebung dieser Probleme zu beginnen.
Andererseits ist bei dieser Art von Problemen auch eine Trending-Anwendung wie Cacti, Ganglia oder Munin hilfreich, da Sie damit das Serververhalten im Hinblick auf wichtige Kennzahlen wie beispielsweise TCP-Verbindungen, CPU, Speicher und Swap beobachten können.
Hoffe das hilft.