Wie ermittle ich die Ursache für den Absturz von MySQL (Percona-Server) unter Linux?

Wie ermittle ich die Ursache für den Absturz von MySQL (Percona-Server) unter Linux?

Ich verwende die Percona-Version von MySQL Server v5.6 und alle paar Tage scheint MySQL abzustürzen und sich dann automatisch neu zu starten. Wie kann ich den Grund für den Absturz herausfinden? Ich habe bei anderen Leuten gesehen, dass MySQL unerwartet abstürzt und es scheint an Speicherproblemen zu liegen, aber in ihren Fällen wird dies im Fehlerprotokoll erwähnt. In meinem Fall erscheint nichts in der Protokolldatei, bis es tatsächlich neu gestartet wird.

Ich füge unten die relevante Protokolldatei mit dem letzten „erwarteten“ Fehler und dem Protokoll bei, das beim Neustart von MySQL protokolliert wird. Sie enthält verschiedene Warnungen „Unsichere Anweisung ins Binärprotokoll geschrieben“ vor dem Absturz, aber ich glaube nicht, dass sie der Grund für den Absturz sind. (Ich werde die Anweisungen in Kürze aktualisieren, damit sie nicht die ON DUPLICATE KEYKonstruktion verwenden, um sie zu stoppen und das Protokoll nicht zu füllen. Ich sollte auch erwähnen, dass ich keine Replikation durchführe, weshalb ich sie im Moment nicht für so wichtig halte.)

Der Server ist ein 64-Bit-Centos 6.6, der auf einer virtuellen Maschine (Virtuozzo) läuft.

Hoffentlich kann mir jemand sagen, was die Ursache für den Absturz ist. Danke!

Protokolldatei unten:

19.03.2018 08:39:51 21476 [Warnung] Unsichere Anweisung, die mit Anweisungsformat in das Binärprotokoll geschrieben wurde, da BINLOG_FORMAT = STATEMENT. INSERT... ON DUPLICATE KEY UPDATE für eine Tabelle mit mehr als einem UNIQUE KEY ist unsichere Anweisung: INSERT INTO xxxx ON DUPLICATE KEY UPDATE xxxx
180319 08:39:52 mysqld_safe Anzahl der derzeit laufenden Prozesse: 0
180319 08:39:52 mysqld_safe mysqld neu gestartet
19.03.2018 08:39:53 0 [Warnung] TIMESTAMP mit implizitem DEFAULT-Wert ist veraltet. Bitte verwenden Sie die Serveroption --explicit_defaults_for_timestamp (weitere Einzelheiten finden Sie in der Dokumentation).
19.03.2018 08:39:53 20217 [Warnung] Die Verwendung des eindeutigen Optionspräfixes myisam-recover anstelle von myisam-recover-options ist veraltet und wird in einer zukünftigen Version entfernt. Bitte verwenden Sie stattdessen den vollständigen Namen.
19.03.2018 08:39:53 20217 [Hinweis] Plugin „FEDERATED“ ist deaktiviert.
2018-03-19 08:39:53 20217 [Anmerkung] InnoDB: Verwenden von Atomen zum Referenzieren der Anzahl von Pufferpoolseiten
2018-03-19 08:39:53 20217 [Hinweis] InnoDB: Der InnoDB-Speicherheap ist deaktiviert
2018-03-19 08:39:53 20217 [Anmerkung] InnoDB: Mutexe und rw_locks verwenden atomare Builtins von GCC
2018-03-19 08:39:53 20217 [Hinweis] InnoDB: Speicherbarriere wird nicht verwendet
2018-03-19 08:39:53 20217 [Hinweis] InnoDB: Komprimierte Tabellen verwenden zlib 1.2.3
2018-03-19 08:39:53 20217 [Hinweis] InnoDB: Verwendung von Linux nativem AIO
2018-03-19 08:39:53 20217 [Hinweis] InnoDB: Verwenden von CPU-CRC32-Anweisungen
19.03.2018 08:39:53 20217 [Hinweis] InnoDB: Pufferpool wird initialisiert, Größe = 3,0 G
2018-03-19 08:39:54 20217 [Hinweis] InnoDB: Initialisierung des Pufferpools abgeschlossen
19.03.2018 08:39:54 20217 [Hinweis] InnoDB: Das am meisten unterstützte Dateiformat ist Barracuda.
2018-03-19 08:39:54 20217 [Hinweis] InnoDB: Der Protokollscan hat den Prüfpunkt lsn 123717382274 überschritten
19.03.2018 08:39:54 20217 [Hinweis] InnoDB: Datenbank wurde nicht normal heruntergefahren!
19.03.2018 08:39:54 20217 [Hinweis] InnoDB: Wiederherstellung nach Absturz wird gestartet.
19.03.2018 08:39:54 20217 [Hinweis] InnoDB: Tablespace-Informationen werden aus den .ibd-Dateien gelesen ...
2018-03-19 08:39:54 20217 [Anmerkung] InnoDB: Wiederherstellen möglicher halbgeschriebener Datenseiten
19.03.2018 08:39:54 20217 [Anmerkung] InnoDB: aus dem Doublewrite-Puffer ...
InnoDB: Wiederherstellung wird durchgeführt: Bis zur Protokollsequenznummer 123717811056 gescannt
InnoDB: Transaktion 790235434 befand sich im Status „XA vorbereitet“.
InnoDB: 1 Transaktion(en), die zurückgesetzt oder bereinigt werden müssen
InnoDB: insgesamt 0 Zeilenoperationen zum Rückgängigmachen
InnoDB: Trx-ID-Zähler ist 790235904
19.03.2018 08:39:55 20217 [Hinweis] InnoDB: Starten eines Batches zum Anwenden von Protokolldatensätzen auf die Datenbank ...
InnoDB: Fortschritt in Prozent: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 7
InnoDB: Batch anwenden abgeschlossen
InnoDB: Letzte MySQL-Binlog-Dateiposition 0 697177863, Dateiname mysql-bin.000227
InnoDB: Rollback nicht festgeschriebener Transaktionen im Hintergrund starten
19.03.2018 08:39:56 20217 [Hinweis] InnoDB: 128 Rollback-Segment(e) sind aktiv.
2018-03-19 08:39:56 7f481bd03700 InnoDB: Rollback nicht vorbereiteter Transaktionen abgeschlossen
2018-03-19 08:39:56 20217 [Hinweis] InnoDB: Warte auf den Beginn der Bereinigung
2018-03-19 08:39:56 20217 [Hinweis] InnoDB: Percona XtraDB (http://www.percona.com) 5.6.22-71.0 gestartet; Protokollsequenznummer 123717811056
2018-03-19 08:39:56 20217 [Hinweis] Wiederherstellung nach einem Absturz mit /var/lib/mysql/mysql-bin
19.03.2018 08:46:36 20217 [Hinweis] Wiederherstellung nach Absturz wird gestartet …
19.03.2018 08:46:36 7f491ce677e0 InnoDB: Wiederherstellung für XA-Transaktionen wird gestartet …
2018-03-19 08:46:36 7f491ce677e0 InnoDB: Transaktion 790235434 im vorbereiteten Zustand nach der Wiederherstellung
2018-03-19 08:46:36 7f491ce677e0 InnoDB: Transaktion enthält Änderungen an 1 Zeile
2018-03-19 08:46:36 7f491ce677e0 InnoDB: 1 Transaktion im vorbereiteten Zustand nach der Wiederherstellung
2018-03-19 08:46:36 20217 [Hinweis] 1 vorbereitete Transaktion(en) in InnoDB gefunden
19.03.2018 08:46:36 20217 [Hinweis] Wiederherstellung nach Absturz abgeschlossen.
19.03.2018 08:46:36 20217 [Hinweis] RSA-Privatschlüsseldatei nicht gefunden: /var/lib/mysql//private_key.pem. Einige Authentifizierungs-Plugins funktionieren nicht.
19.03.2018 08:46:36 20217 [Hinweis] RSA-Public-Key-Datei nicht gefunden: /var/lib/mysql//public_key.pem. Einige Authentifizierungs-Plugins funktionieren nicht.
2018-03-19 08:46:36 20217 [Hinweis] Server-Hostname (Bind-Adresse): '*'; Port: 3306
19.03.2018 08:46:36 20217 [Hinweis] IPv6 ist verfügbar.
19.03.2018 08:46:36 20217 [Hinweis] – '::' wird zu '::' aufgelöst;
19.03.2018 08:46:36 20217 [Hinweis] Server-Socket erstellt auf IP: '::'.
2018-03-19 08:46:37 20217 [Hinweis] Event Scheduler: 0 Ereignisse geladen
19.03.2018 08:46:37 20217 [Hinweis] /usr/sbin/mysqld: bereit für Verbindungen.
Version: „5.6.22-71.0-log“ Socket: „/var/lib/mysql/mysql.sock“ Port: 3306 Percona Server (GPL), Version 71.0, Revision 726
19.03.2018 08:46:38 20217 [Warnung] Unsichere Anweisung, die im Anweisungsformat in das Binärprotokoll geschrieben wurde, da BINLOG_FORMAT = STATEMENT. INSERT... ON DUPLICATE KEY UPDATE für eine Tabelle mit mehr als einem UNIQUE KEY ist unsichere Anweisung: INSERT INTO xxxx ON DUPLICATE KEY UPDATE xxxx

Bearbeiten: Gemäß der Frage von @impimp in den Kommentaren ist hier der Inhalt von/var/log/messages

18. März 04:02:22 HOSTNAME rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="474" x-info="http://www.rsyslog.com"] rsyslogd wurde HUPed
19. März 08:39:52 HOSTNAME Kernel: [103311785.405884] Nicht genügend Arbeitsspeicher in UB 650543: OOM hat Prozess 21476 (mysqld) beendet. Punktzahl 0 vm:6363484kB, rss:4024500kB, swap:45536kB
20. März 09:17:35 HOSTNAME Kernel: [103400050.711461] Nicht genügend Arbeitsspeicher in UB 650543: OOM hat Prozess 20217 (mysqld) beendet. Punktzahl 0 vm:6382720kB, rss:4066652kB, swap:0kB

verwandte Informationen