Как исправить?
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 compose yml ЧАСТЬ БД
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 специальное добавление ./ в ./db для резервного копирования
решение1
Двоичные журналы используются для восстановления данных, репликации и мониторинга базы данных. И вы можете очистить старые. и цитируя этот ответ отБД
Вам нужно позволить mysqld сделать это за вас. Вот как mysqld справляется с этим:
Файл mysql-bin.[index] хранит список всех бинарных журналов, которые mysqld сгенерировал и автоматически ротировал. Механизмы очистки бинарных журналов в сочетании с mysql-bin.[index] следующие:
PURGE BINARY LOGS TO 'binlogname';
PURGE BINARY LOGS BEFORE 'datetimestamp';
решение2
TheИспользование и ведение двоичного журналаСтраница базы знаний MariaDB содержит информацию о том, как очистить двоичные журналы.
Чтобы удалить все двоичные файлы журнала на сервере, запустите командуСБРОС МАСТЕРАкоманда. Чтобы удалить все двоичные журналы до определенной даты и времени или до определенного числа, используйтеОЧИСТИТЬ ДВОИЧНЫЕ ЖУРНАЛЫ.
На странице также объясняется, как автоматически сохранять бинарные журналы.
Файлы журналов также можно удалять автоматически с помощьюexpire_logs_daysсистемная переменная. По умолчанию она установлена на 0 (удаление невозможно), но может быть установлена на время в днях, после которого двоичный файл журнала будет автоматически удален. Файлы журнала будут проверяться только на то, что они старше expire_logs_days при ротации журнала, поэтому если ваш двоичный журнал заполняется медленно и не достигаетmax_binlog_sizeежедневно вы можете видеть, что старые файлы журналов все еще сохраняются. Вы также можете принудительно ротировать журналы и удалять их по истечении срока действия, запустивОЧИСТИТЬ ДВОИЧНЫЕ ЖУРНАЛЫна регулярной основе. Всегда устанавливайте expire_logs_days выше любой возможной задержки реплики.
В вашем случае понижение max_binlog_size
должно помочь ротациям бинарных журналов происходить чаще, что в свою очередь уменьшит объем хранимых данных. Если вы добавите --max_binlog_size=100M
в command
ваш docker-compose.yml
, сервер MariaDB очистит бинарные журналы, как только они превысят 100 МБ.
Как указано в документации, вы можете вручную запустить FLUSH BINARY LOGS
команду, чтобы принудительно выполнить ротацию бинарного журнала, что, в свою очередь, запустит очистку старых файлов.