[LINUX] Was tun, wenn Ihre Festplatte aufgrund von MySQL-Binärprotokollen leer ist?

Einführung

Dieser Artikel beschreibt, was zu tun ist, wenn Sie MySQL verwenden und Ihre Festplatte aufgrund von Binärprotokollen leer ist.

Der von MySQL verwendete Datenbereich war erschöpft, die Festplattennutzung wurde zu 100% und MySQL konnte nicht gestartet werden.

Nach Untersuchung der Ursache wurde bestätigt, dass eine große Anzahl von 1.1G-Binärprotokollen in das Verzeichnis unter "/ data / mysql /" ausgegeben wurde, das als Datenbereich verwendet wurde.

Ich möchte das Binärprotokoll "puge" und löschen, kann mich aber nicht einmal bei mysql anmelden, da ich MySQL auch nicht starten kann. Wir werden die vorläufige und dauerhafte Unterstützung für solche Fälle beschreiben.

vorübergehende Lösung

Löschen Sie zuerst das älteste binäre Protokoll mit dem Befehl rm und führen Sie den Befehl df aus, um zu bestätigen, dass der freie Speicherplatz gesichert wurde.

# rm /data/mysql/binlog.000169

/dev/sdb1        50G   49G  1.1G  98% /data

Dann starten Sie MySQL. Bestätigen Sie, dass es normal gestartet wurde, und melden Sie sich bei MySQL an.

# systemctl start mysql # systemctl status mysql # mysql -u root -p

Führen Sie den folgenden Befehl aus, um den Status des Binärprotokolls zu überprüfen.

--Nächstes binäres Protokoll

mysql> SHOW MASTER STATUS\g;
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000215 |      155 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
mysql> SHOW MASTER LOGS;
+---------------+------------+-----------+
| Log_name      | File_size  | Encrypted |
+---------------+------------+-----------+
| binlog.000170 | 1073742751 | No        |
| binlog.000171 | 1073751257 | No        |
| binlog.000172 | 1073757631 | No        |
| binlog.000173 | 1073755121 | No        |
| binlog.000174 | 1073752838 | No        |
| binlog.000175 | 1073743951 | No        |
| binlog.000176 | 1073748347 | No        |
| binlog.000177 | 1073751179 | No        |
| binlog.000178 | 1073763386 | No        |
| binlog.000179 | 1073765359 | No        |
| binlog.000180 | 1073745938 | No        |
| binlog.000181 | 1073763697 | No        |
| binlog.000182 | 1073744490 | No        |
| binlog.000183 | 1073761859 | No        |
| binlog.000184 | 1073775954 | No        |
| binlog.000185 | 1073757908 | No        |
| binlog.000186 | 1073773373 | No        |
| binlog.000187 | 1073755666 | No        |
| binlog.000188 | 1073743518 | No        |
| binlog.000189 | 1073782889 | No        |
| binlog.000190 | 1073756995 | No        |
| binlog.000191 | 1073770640 | No        |
| binlog.000192 | 1073743582 | No        |
| binlog.000193 | 1073757032 | No        |
| binlog.000194 | 1073754014 | No        |
| binlog.000195 | 1073757718 | No        |
| binlog.000196 | 1073746065 | No        |
| binlog.000197 | 1073745350 | No        |
| binlog.000198 | 1073751875 | No        |
| binlog.000199 | 1073745702 | No        |
| binlog.000200 | 1073754484 | No        |
| binlog.000201 | 1073762857 | No        |
| binlog.000202 | 1073761196 | No        |
| binlog.000203 | 1073755084 | No        |
| binlog.000204 | 1073836164 | No        |
| binlog.000205 | 1073745617 | No        |
| binlog.000206 | 1073753921 | No        |
| binlog.000207 | 1073771413 | No        |
| binlog.000208 | 1073764906 | No        |
| binlog.000209 | 1073767754 | No        |
| binlog.000210 | 1073781899 | No        |
| binlog.000211 | 1073744615 | No        |
| binlog.000212 | 1073744221 | No        |
| binlog.000213 | 1073770872 | No        |
| binlog.000214 |  323286661 | No        |
| binlog.000215 |     398814 | No        |
| binlog.000216 |     896660 | No        |
+---------------+------------+-----------+
47 rows in set (0.03 sec)

Löschen Sie unnötige Binärprotokolle, die als temporäre Maßnahme gesammelt wurden. um die Datei vor dem angegebenen Binlog zu löschen.

mysql> PURGE MASTER LOGS TO 'binlog.000212';
Query OK, 0 rows affected, 1 warning (0.00 sec)

Führen Sie den Befehl df erneut aus und bestätigen Sie, dass die Festplattennutzung abgenommen hat.

/dev/sdb1        50G  4.0G   46G   8% /data

Permanente Unterstützung

Die direkte Ursache des Ereignisses liegt in MySQL Spezifikationen mit den Standardeinstellungen des Binärprotokolls. Binäre Protokolle sammelten sich weiter an, da die Ausgabe gültig war.

In früheren Versionen von MySQL war die binäre Protokollierung standardmäßig deaktiviert und aktiviert, wenn Sie die Option --log-bin angegeben haben. Ab MySQL 8.0 ist die binäre Protokollierung standardmäßig aktiviert, unabhängig davon, ob Sie die Option --log-bin angeben.

Stellen Sie die Protokollrotation als permanente Antwort ein und ändern Sie die Einstellung, damit keine binären Protokolle akkumuliert werden. Starten Sie MySQL nach dem Ändern der Einstellungen neu.

# vi /etc/mysql/mysql.conf.d/mysqld.cnf

# binlog rotation
expire_logs_days = 7

In diesem Fall erfolgt die Protokollrotation in 7 Tagen.

abschließend

Die Hauptursache ist eine unzureichende Berücksichtigung zum Zeitpunkt des Entwurfs.

Recommended Posts

Was tun, wenn Ihre Festplatte aufgrund von MySQL-Binärprotokollen leer ist?
Einfache Lösung, wenn Sie Ihr EC2-Schlüsselpaar verlieren
Was tun, wenn Yum kaputt geht?
Was tun, wenn Sie mit Maven kein Projekt erstellen können?
Was tun, wenn pipreqs zu UnicodeDecodeError führt?
Was tun, wenn mod_fcgid UnicodeEncodeError nicht auflösen kann?
Was tun, wenn die Schienen nicht funktionieren?
Was tun, wenn pip nicht installiert werden kann?
Was tun, wenn die Autocomplete-Python von Atom nicht funktioniert?
Was tun, wenn die Docker-Synchronisierung plötzlich nicht mehr funktioniert?
Was tun, wenn ein Fehler "unbekannter Dienst" vom gRPC-Server zurückgegeben wird?
Was tun, wenn Ubuntu angibt, dass das Kennwort zu kurz ist, um [passwd command] [ubuntu] zu ändern?
Was tun, wenn Ihr Jupyter-Notizbuch für Anfänger nach einem Passwort oder Token fragt?
Was tun, wenn Sie mysqlclient nicht per Pip installieren können?
Kein Modul mit dem Namen Was tun, wenn Sie "libs.resources" erhalten?
ModuleNotFoundError: Kein Modul Was tun, wenn Sie'tensorflow.contrib 'erhalten?
Was tun, wenn die SciPy-Installation unter CentOS fehlschlägt?
Was tun, wenn in pip ein Unicode-Dekodierungsfehler auftritt?
Was tun, wenn bei der Installation von pip abhängige Bibliotheken nicht installiert werden können?
Was tun, wenn sys / cdefs.h nicht vorhanden ist?
Was tun, wenn pyenv nicht aktiviert ist (zsh)
Was tun, wenn Jupyter Notebook unter WSL nicht automatisch im Browser gestartet wird?
Was tun, wenn Modem Manager unter Linux das Schreiben von Keymaps auf Ihre eigene Tastatur stört?
Was tun, wenn `Argumente [0] .scrollIntoView ();` in Python-Selen fehlschlägt?
Was tun, wenn die Paketabhängigkeit nicht repariert werden kann?
Was tun, wenn pip in Homebrew einen DistributionError ausgibt?
Was tun, wenn Overalls "Abdeckung unbekannt" werden?
Was tun, wenn Sie keine Dateien mit Indizes sortieren können?
Was tun, wenn in tf.train.start_queue_runners () ein 0xC0000005-Fehler auftritt?
Was tun, wenn die Paketinstallation bei der Bereitstellung auf heroku fehlschlägt?
Was tun, wenn `pip install matplot lib` auf dem Mac fehlschlägt?
Was tun, wenn Sie sich nicht als root anmelden können?
Was tun, wenn Sie unter Linux kein WLAN verwenden können?
Was tun, wenn Linux VLC nicht mehr rotieren kann?
Was tun, wenn die Installation von pip mysqlclient unter MacOS fehlschlägt?
Was tun, wenn Sie eine Binärdatei katzen oder verfolgen und das Terminal verstümmelt ist?
CommandNotFoundError: Ihre Shell wurde nicht ordnungsgemäß für die Verwendung von Was ist zu tun, wenn Sie "Conda aktivieren" verwenden?
Was tun, wenn Sie nach dem Durchsuchen einer Textdatei Übereinstimmungen mit Binärdateien (Standardeingabe) erhalten?
Was tun, wenn Python unter Git für Windows nicht funktioniert?
Was tun, wenn Sie pyaudio nicht mit pip #Python installieren können?
Was tun, wenn in Python minus Null angezeigt wird?
Was tun, wenn Intellisense mit Anaconda + VSCode + Tensorflow2.1 nicht funktioniert?
Was tun, wenn Python "schwerwiegender Fehler: Datei 'stdio.h' nicht gefunden" anzeigt?
Was tun, wenn bei der Pip-Installation ein Unicode-Dekodierungsfehler auftritt?
Was tun, wenn beim Ausführen von Python eine Warnung zur unsicheren Plattform angezeigt wird?
Was tun, wenn "Unbenannt: 0" in_csv-> read_csv von Pandas hinzugefügt wird?
Was tun, wenn der Inode unter EC2 Linux erschöpft ist?
Was tun, wenn PyAudio unter Python 3.7, 3.8, 3.9 unter Windows nicht installiert werden kann?
Was tun, wenn Sie den Papierkorb in Lubuntu 18.04 nicht verwenden können?
Django: Was tun, wenn TemplateDoesNotExist unter / admin / nach dem Festlegen von Vorlagen vorhanden ist?