¿Como arreglar?
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 compone yml DB PARTE
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 adición especial ./ en ./db para copia de seguridad
Respuesta1
Los registros binarios se utilizan para la recuperación, replicación y monitoreo de bases de datos. Y puedes borrar los viejos. y citando esta respuesta deDB
Debes dejar que mysqld haga eso por ti. Así es como mysqld lo administra:
El archivo mysql-bin.[index] mantiene una lista de todos los registros binarios que mysqld ha generado y rotado automáticamente. Los mecanismos para limpiar los binlogs junto con mysql-bin.[index] son:
PURGE BINARY LOGS TO 'binlogname';
PURGE BINARY LOGS BEFORE 'datetimestamp';
Respuesta2
ElUso y mantenimiento del registro binarioLa página de la base de conocimientos de MariaDB tiene información sobre cómo purgar registros binarios.
Para eliminar todos los archivos de registro binarios en el servidor, ejecute elREINICIAR MAESTROdominio. Para eliminar todos los registros binarios antes de una determinada fecha y hora, o hasta un determinado número, utilicePURGAR REGISTROS BINARIOS.
La página también explica cómo lidiar con la retención de binlog automáticamente.
Los archivos de registro también se pueden eliminar automáticamente con elexpirar_logs_daysvariable del sistema. Esto está establecido en 0 de forma predeterminada (sin eliminación), pero se puede establecer en un tiempo, en días, después del cual se eliminará automáticamente un archivo de registro binario. Solo se comprobará que los archivos de registro tengan una antigüedad superior a expire_logs_days al rotar el registro, por lo que si su registro binario se llena lentamente y no alcanzatamaño_max_binlogDiariamente, es posible que vea que los archivos de registro más antiguos aún se conservan. También puede forzar la rotación de registros y, por lo tanto, las eliminaciones por vencimiento, ejecutandoVACIAR REGISTROS BINARIOSsobre una base regular. Configure siempre expire_logs_days por encima de cualquier posible retraso de réplica.
En su caso, la reducción max_binlog_size
debería ayudar a que las rotaciones de binlog se realicen con mayor frecuencia, lo que a su vez reducirá la cantidad de datos que se conservan. Si agrega --max_binlog_size=100M
a command
su archivo docker-compose.yml
, el servidor MariaDB eliminará los registros binarios una vez que hayan superado los 100 MiB.
Como se menciona en la documentación, puede ejecutar manualmente el FLUSH BINARY LOGS
comando para forzar una rotación de binlog, lo que a su vez activará la eliminación de archivos antiguos.