Wie repariert man MariaDB, wenn es beim Herunterfahren hängen bleibt (Warten auf page_cleaner)?

Wie repariert man MariaDB, wenn es beim Herunterfahren hängen bleibt (Warten auf page_cleaner)?

Ich verwende MariaDB (v 10.3.13) unter Arch Linux (Manjaro). In den letzten Monaten hat es normal funktioniert, aber jetzt gibt es einige Probleme. Wenn ich versuche, den Computer neu zu starten, bleibt er hängen bei

A stop job is running for MariaDB 10.3.13 database server

Die erforderliche Zeit wird jede Minute erhöht, bis das Zeitlimit schließlich erreicht ist (nach ca. 20 Minuten).

Das manuelle Stoppen von MariaDB bleibt auch hängen, wenn ich versuche, es mit neu zu starten/stoppen

sudo systemctl stop/restart mariadb

Dann laufen sudo systemctl status mariadbShows

/usr/bin/mysqld (initiated by: unknown): Normal shutdown
Event Scheduler: Purging the queue. 0 events
InnoDB: FTS optimize thread exiting.
InnoDB: Starting shutdown...
InnoDB: Dumping buffer pool(s) to /var/lib/mysql/ib_buffer_pool
InnoDB: Buffer pool(s) dump completed at 190402 20:31:01
InnoDB: Waiting for page_cleaner to finish flushing of buffer pool 

Jede Minute InnoDB: Waiting for page_cleaner to finish flushing of buffer poolkommt eine weitere Zeile hinzu.

Gibt es eine Möglichkeit, MariaDB zurückzusetzen? Oder eine Möglichkeit, weitere Informationen zum Problem zu erhalten?

PS: Ich habe vor Kurzem einige Updates über den Paketmanager installiert und danach ist mir das Problem zum ersten Mal aufgefallen.

Aktualisieren:

Wenn ich MariaDB deinstalliere, neu starte und neu installiere, kann ich MariaDB problemlos stoppen/neu starten und das Herunterfahren verläuft problemlos. Aber nach dem erneuten Booten habe ich wieder die oben beschriebenen Probleme.

Antwort1

Nach stundenlangem Kampf konnte ich das Problem endlich lösen.

Der Übeltäter war eine Zeiteinstellung ( timedatectl set-local-rtc 1) für den Dualboot mit Win10.

Aufgrund einer kürzlichen Zeitumstellung ist die Uhr durcheinander geraten. (Die Einträge im Statusprotokoll sudo systemctl status mariadblagen 1 Stunde in der Zukunft.)

Einstellung

timedatectl set-local-rtc 0

und ein Neustart hat das Problem behoben.

Antwort2

TimeoutSec=300Sie können den Timeout-Wert in der MySQL-Startdienst-Konfigurationsdatei auch von (5 Minuten) auf einen niedrigeren Wert reduzieren :

vi /usr/lib/systemd/system/mariadb.service

### after editing timout value in above config file you can apply it by using:
systemctl daemon-reload

Notiz: Das ist keine Lösungoder Lösung für dieses Problem. Es reduziert einfach den Timeout-Wert für die Beendigung des Dienstes. Sie sollten eine korrekte Lösung basierend auf der Situation oder dem Fehler finden, der dies auf Ihrem Betriebssystem und Dienst verursacht hat, und das Timeout nach der Lösung des Problems auf den empfohlenen Standardwert zurücksetzen.

verwandte Informationen