TrashNotes

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.
← Previous Next →
Back to list