Wie repariert man?
ls -lh /root/docker/yml/nextcloud/db/binlog.*
-rw-rw---- 1 999 999 960M Aug 25 22:55 /root/docker/yml/nextcloud/db/binlog.000043
-rw-rw---- 1 999 999 5.5M Aug 25 23:52 /root/docker/yml/nextcloud/db/binlog.000044
-rw-rw---- 1 999 999 156M Aug 26 23:40 /root/docker/yml/nextcloud/db/binlog.000045
-rw-rw---- 1 999 999 260M Aug 28 15:10 /root/docker/yml/nextcloud/db/binlog.000046
-rw-rw---- 1 999 999 548M Sep 1 00:03 /root/docker/yml/nextcloud/db/binlog.000047
-rw-rw---- 1 999 999 593M Sep 4 11:28 /root/docker/yml/nextcloud/db/binlog.000048
-rw-rw---- 1 999 999 13M Sep 4 13:21 /root/docker/yml/nextcloud/db/binlog.000049
-rw-rw---- 1 999 999 529M Sep 9 22:20 /root/docker/yml/nextcloud/db/binlog.000050
-rw-rw---- 1 999 999 128 Sep 4 13:26 /root/docker/yml/nextcloud/db/binlog.index
Docker komponieren YML DB TEIL
services:
db:
image: mariadb:10.6
container_name: nextcloudDB
restart: always
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW --expire_logs_days=2
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=d`X'1B7Ss/=E;JxROOT
- MYSQL_PASSWORD=d`X'3B7SD/dE;Jx
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
logging:
driver: "json-file"
options:
max-size: "50m"
max-file: "10"
- ./db:/var/lib/mysql spezielles Add-on ./ in ./db für Backup
Antwort1
Binärprotokolle werden zur Datenwiederherstellung, Replikation und Datenbanküberwachung verwendet. Und Sie können alte löschen. und zitiert diese Antwort ausDB
Das müssen Sie mysqld für Sie erledigen lassen. So geht mysqld vor:
Die Datei mysql-bin.[index] enthält eine Liste aller Binärprotokolle, die mysqld generiert und automatisch rotiert hat. Die Mechanismen zum Bereinigen der Binärprotokolle in Verbindung mit mysql-bin.[index] sind:
PURGE BINARY LOGS TO 'binlogname';
PURGE BINARY LOGS BEFORE 'datetimestamp';
Antwort2
DerVerwenden und Verwalten des BinärprotokollsDie Seite in der MariaDB-Wissensdatenbank enthält Informationen zum Löschen von Binärprotokollen.
Um alle binären Logdateien auf dem Server zu löschen, führen Sie denMASTER ZURÜCKSETZENBefehl. Um alle Binärprotokolle vor einem bestimmten Datum oder einer bestimmten Anzahl zu löschen, verwenden SieBINÄRPROTOKOLLE LÖSCHEN.
Auf der Seite wird auch erklärt, wie mit der Binlog-Aufbewahrung automatisch umgegangen wird.
Logdateien können auch automatisch gelöscht werden mit demProtokolltage ablaufen lassenSystemvariable. Dies ist standardmäßig auf 0 eingestellt (keine Entfernung), kann aber auf eine Zeit in Tagen eingestellt werden, nach deren Ablauf eine binäre Protokolldatei automatisch entfernt wird. Protokolldateien werden bei der Protokollrotation nur auf ihr Alter als expire_logs_days überprüft. Wenn sich Ihr binäres Protokoll also nur langsam füllt und nicht erreichtmax_binlog_sizetäglich werden möglicherweise ältere Protokolldateien aufbewahrt. Sie können auch die Protokollrotation und damit das Löschen nach Ablauf erzwingen, indem Sie Folgendes ausführen:BINÄRE LOGS LEERENregelmäßig. Setzen Sie expire_logs_days immer höher als eine mögliche Replikationsverzögerung.
In Ihrem Fall max_binlog_size
sollte das Verringern dazu beitragen, dass die Binärprotokollrotationen häufiger erfolgen, was wiederum die Menge der gespeicherten Daten verringert. Wenn Sie in Ihrem hinzufügen --max_binlog_size=100M
, command
löscht docker-compose.yml
der MariaDB-Server die Binärprotokolle, sobald sie 100 MiB überschritten haben.
Wie in der Dokumentation erwähnt, können Sie den FLUSH BINARY LOGS
Befehl manuell ausführen, um eine Binlog-Rotation zu erzwingen, die wiederum das Löschen alter Dateien auslöst.