Файлы binlog на сервере

12
Weblady
На сайте с 26.07.2011
Offline
141
353

Обнаружила в папке /var/lib/mysql огромное количество файлов binlog., которые занимают по 100 MB.

Что это за файлы, можно ли их удалить и отключить создание таких логов?


LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#1

В настройках mysql надо выставить:

skip-log-bin

disable-log-bin

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
Weblady
На сайте с 26.07.2011
Offline
141
#2
LEOnidUKG #:

В настройках mysql надо выставить:

skip-log-bin

disable-log-bin

Спасибо! Можно ли удалить данные файлы? Техподдержка написала:

Нет, это часть баз данных

Это действительно так или это логи, которые можно безболезненно удалить?

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#3
Weblady #:

Спасибо! Можно ли удалить данные файлы? Техподдержка написала:

Это действительно так или это логи, которые можно безболезненно удалить?

После отключения, перезагружаете mysql тестируете, что они больше не создаются и не обновляются.

Выключаете mysql переносите файлы во временную директорию и запускаете mysql

Проверяете всё ли корректно работает. Если да, удаляете временную директорию

WS
На сайте с 01.11.2008
Offline
135
#4
Weblady #:

Спасибо! Можно ли удалить данные файлы? Техподдержка написала:

Это действительно так или это логи, которые можно безболезненно удалить?

нет, это не просто логи, вот цитата:

В бинарный лог записываются все команды изменения базы данных, пригодится для репликации и восстановления

и их не рекомендуется отключать:

Использование бинарного лога снижает производительность базы данных, однако его польза настолько велика, что крайне не рекомендуется его отключать

зато можете периодически безопасно удалять запросом к базе

PURGE BINARY LOGS BEFORE NOW() - INTERVAL 30 DAY;

этот запрос удаляет бинлоги старше 30 дней, и сервер баз данных при этом перезагружать не надо

или вот так, старше определённой даты

PURGE BINARY LOGS BEFORE '2024-02-01 00:00:00';
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#5
Владимир #:
нет, это не просто логи, вот цитата:

Пошёл поискал... статьи от 2011 года. На календаре 2024... ну да ну да...

Если нет репликаций и БД просто одна для сайтов, там не нужны бинарные логи.

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#6

Открываем документацию официальную:  MySQL :: MySQL 8.0 Reference Manual :: 7.4.4 The Binary Log

Running a server with binary logging enabled makes performance slightly slower. However, the benefits of the binary log in enabling you to set up replication and for restore operations generally outweigh this minor performance decrement.

Ой! Наверное разработчики Mysql глупенькие и не знают как их БД работает. 🤣
MySQL :: MySQL 8.0 Reference Manual :: 7.4.4 The Binary Log
  • dev.mysql.com
The binary log contains that describe database changes such as table creation operations or changes to table data. It also contains events for statements that potentially could have made changes (for example, a which matched no rows), unless row-based logging is used. The binary log also contains information about how long each statement took...
Weblady
На сайте с 26.07.2011
Offline
141
#7
LEOnidUKG #:

Открываем документацию официальную:  MySQL :: MySQL 8.0 Reference Manual :: 7.4.4 The Binary Log

Ой! Наверное разработчики Mysql глупенькие и не знают как их БД работает. 🤣

Запуталась. Этих файлов более 700, каждый более 100 Мб. Пришло сообщение, что переполнилось место на сервере, проверила, чем же так могло оно быть занято.

На сервере 10 баз данных, каждая не более 2 Гб и меньше. Что всё же хранится в этих бинарных логах? Можно ли удалить хотя бы старые логи?

WS
На сайте с 01.11.2008
Offline
135
#8
Weblady #:

Запуталась. Этих файлов более 700, каждый более 100 Мб. Пришло сообщение, что переполнилось место на сервере, проверила, чем же так могло оно быть занято.

На сервере 10 баз данных, каждая не более 2 Гб и меньше. Что всё же хранится в этих бинарных логах? Можно ли удалить хотя бы старые логи?

в них хранится вся история изменения данных в базе, по ней можно восстановить, если она грохнется, вы можете смело запустить команду

PURGE BINARY LOGS BEFORE '2024-02-01 00:00:00';

но перед этим сделать полный бэкап:

mysqldump -u root -ppassword --flush-logs --delete-master-logs  --all-databases > full-backup.sql
если такое случится и база упадёт и не получится восстановить, можно, используя файл
full-backup.sql

восстановить базу до состояния создания этого файла командой

mysql -u root -ppassword  < full-backup.sql

а потом накатить изменения, которые были сделаны после его создания, согласно бинлогам:

mysqlbinlog  mysql_bin.00001 mysql_bin.00002 mysql_bin.00003 | mysql -u root -ppassword
не слушайте грамотеев, которые советуют отключить ведение бинлогов, они позволяют в случае беды всё восстановить, именно потому что создатели mysql люди не глупые, они и поставили эту опцию включенной по умолчанию
PA
На сайте с 15.02.2018
Offline
98
#9
Не тупите и выставьте бинлог в 1-2 дня в mysql.cnf, а не 10. А дальше достаточно перезагрузить базу или сервер.
Продаю ХОСТИНГ | Дедик, VDS, Бекап ( https://is.gd/vgd245) дешево | Мои VDS ( https://is.gd/vds100 ) быстрее твоих
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#10
Pavel A #:
Не тупите и выставьте бинлог в 1-2 дня в mysql.cnf, а не 10. А дальше достаточно перезагрузить базу или сервер.

По умолчанию 30 дней стоит.

Как вариант если два дня хранить:

binlog_expire_logs_seconds = 172800

После установки, перезагрузить mysql, он подчистит сам старые

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий