2025-03-12 20:24:07
Настройка ротации и удаления лог-файлов в MariaDB на CentOS 7 включает в себя использование утилиты logrotate. Ниже приведены шаги для настройки ротации лог-файлов MariaDB.
Настройка ротации лог-файлов MariaDB
1. Создание файла конфигурации logrotate
Создайте файл конфигурации для лог-файлов MariaDB в директории /etc/logrotate.d/. Например, создайте файл mariadb:
bash
vi /etc/logrotate.d/mariadb
2. Настройка ротации лог-файлов
Добавьте в файл следующее содержимое:
text
/var/log/mariadb/*.log {
daily
rotate 7
missingok
notifempty
compress
delaycompress
create 640 mysql mysql
postrotate
/usr/bin/systemctl reload mariadb > /dev/null 2>/dev/null || true
endscript
}
Эта конфигурация выполняет ротацию лог-файлов каждый день, сохраняет последние 7 ротированных файлов, сжимает их, и перезагружает службу MariaDB после ротации.
3. Настройка ротации binary logs
Для binary logs можно использовать аналогичную конфигурацию, но с учетом того, что они обычно хранятся в другой директории. Например, если ваши binary logs находятся в /var/log/mariadb/mariadb-bin.*, то добавьте:
text
/var/log/mariadb/mariadb-bin.* {
daily
rotate 7
missingok
notifempty
compress
delaycompress
create 640 mysql mysql
postrotate
/usr/bin/mysql -uroot -e "FLUSH LOGS" > /dev/null 2>/dev/null || true
endscript
}
Эта конфигурация ротирует binary logs и выполняет команду FLUSH LOGS, чтобы сбросить текущий лог-файл.
4. Автоматический запуск logrotate
По умолчанию logrotate запускается ежедневно из файла /etc/cron.daily/logrotate. Если вам нужно выполнить ротацию по другому расписанию, вы можете добавить задание в cron:
bash
crontab -e
Добавьте строку для запуска logrotate по вашему расписанию, например:
bash
0 0 * * * /usr/sbin/logrotate -f /etc/logrotate.d/mariadb
Эта команда запускает logrotate для лог-файлов MariaDB каждый день в полночь.
Примечания
Права доступа: Убедитесь, что у службы MariaDB есть права на запись в указанные директории для лог-файлов.
Перезапуск службы: После изменения конфигурации необходимо перезапустить службу MariaDB, чтобы изменения вступили в силу:
bash
systemctl restart mariadb
Эти настройки позволят вам автоматизировать ротацию и удаление лог-файлов MariaDB на CentOS 7.
#####################
В MariaDB есть несколько команд и утилит, которые можно использовать для работы с binary logs. Ниже приведены некоторые из них:
Команды для работы с binary logs
1. PURGE BINARY LOGS
Эта команда используется для удаления старых binary logs. Например, чтобы удалить все логи старше 7 дней:
sql
PURGE BINARY LOGS BEFORE DATE_SUB(NOW(), INTERVAL 7 DAY);
2. SHOW BINARY LOGS
Эта команда выводит список всех доступных binary logs:
sql
SHOW BINARY LOGS;
3. SHOW BINLOG EVENTS
Эта команда выводит события из binary logs. Например, чтобы просмотреть последние 10 событий из текущего лог-файла:
sql
SHOW BINLOG EVENTS IN 'mariadb-bin.000001' LIMIT 10;
4. FLUSH LOGS
Эта команда сбрасывает текущий binary лог и начинает новый:
sql
FLUSH LOGS;
5. mysqlbinlog
Утилита mysqlbinlog позволяет просматривать и обрабатывать binary logs. Например, чтобы просмотреть содержимое лог-файла и вывести SQL команды:
bash
mysqlbinlog mariadb-bin.000001
Или, чтобы записать SQL команды в файл:
bash
mysqlbinlog mariadb-bin.000001 > output.sql
Примечания
Права доступа: Убедитесь, что у службы MariaDB есть права на запись в указанные директории для лог-файлов.
Перезапуск службы: После изменения конфигурации необходимо перезапустить службу MariaDB, чтобы изменения вступили в силу:
bash
systemctl restart mariadb
Эти команды и утилиты позволят вам эффективно работать с binary logs в MariaDB.
Back to list