Когда MySQL Server запускается, он проверяет свою командную строку для операций, чтобы увидеть, следует ли выполнить вход в систему, и открывает соответствующий файл журнала (если это так). Вы можете, чтобы сервер генерировал два основных типа файлов журналов: обычные файлы журнала. Он сообщает о клиентских соединениях, запросах и различных других событиях. Когда MySQL Server запускается, он проверяет свою командную строку для операций, чтобы увидеть, следует ли выполнить вход в систему, и открывает соответствующий файл журнала (если это так). Вы можете, чтобы сервер генерировал два основных типа файлов журналов: обычные файлы журнала. Он сообщает о клиентских соединениях, запросах и различных других событиях. Это полезно для отслеживания активности сервера: кто подключается, откуда и что они делают.
Журнал изменений
Он сообщает запросы, которые изменяют базу данных. Термин «обновление» в этом контексте относится не только к обновлению операторов, но и ко всем операторам, которые изменяют базу данных. По этой причине он содержит записи запросов для удаления, вставки, замены, создания таблицы, таблицы выбросов, гранта и обозрения. Содержание журнала обновлений записано в форме операторов SQL, которые используются в качестве входных данных MySQL. Обновление журналов и резервных копий полезны, если таблица должна быть восстановлена после сбоя. Вы можете восстановить базу данных из файла резервного копирования, а затем повторить любые запросы, которые изменили базу данных после этого файла резервного копирования, используя журнал обновления в качестве входного ввода в MySQL. Это восстанавливает таблицу до его состояния во время аварии.
Чтобы сделать журналы эффективными, используйте параметр «log», чтобы включить регулярные журналы и параметр «log-update», чтобы включить регистрацию обновлений. Эти параметры могут быть указаны в командной строке в mysqld.safe_mysqld или mysql.server, или в группе [mysqld] опции. Когда регистрация включена, файлы журнала по умолчанию записываются в каталог данных сервера.
Автор рекомендует, чтобы оба типа журнала были действительны при первом использовании MySQL. После того, как вы получите некоторый опыт работы с MySQL, у вас может возникнуть соблазн просто использовать журнал обновления для сокращения требований к дисковому пространству.
После включения журнала, обязательно не заполняйте диск большим количеством информации журнала, особенно если сервер обрабатывает большое количество запросов. Вращение и срок срока действия журнала можно использовать для предотвращения роста не ограниченных файлов журналов, сохраняя при этом самые последние журналы, доступные в Интернете.
Вращение файла журнала работает следующим образом. Предположим, что файл журнала называется журналом. В первом цикле журнал переименован в журнал. Во втором цикле log.0 переименован в журнал. Таким образом, каждый файл цикл через журнал имен. Когда файл достигает определенной точки в цикле, его можно прекратить.
Обновление журналов и операторы загрузки данных
Обычно, когда сервер выполняет оператор даты загрузки, он записывает только сам оператор, а не загруженное содержимое строки, в журнал обновления. Это означает, что операции восстановления с использованием журнала обновления будут неполными, если файлы данных не останутся доступными. Чтобы убедиться, что это безопасно, файлы данных не должны быть удалены, если база данных не будет резервирована.
Резервная копия системы
Журналы обновлений не всегда хороши для восстановления базы данных, и если диск заставляет вас потерять журналы обновлений, убедитесь, что вы выполняете регулярные резервные копии файловой системы. Также хорошая идея написать журнал обновления на другой диск, чем где хранится база данных.
Например, если вы ежедневно вводите велосипедные журналы и хотите вести журналы в течение недели, вы будете сохранять log.0 для журнала.6. В следующем цикле журнал. Таким образом, вы можете сохранить много журналов, не превышая предел диска.
Частота вращения журнала и количество старых журналов будет зависеть от того, насколько занят сервер (активные серверы создают больше сообщений журнала) и сколько места на дисковом пространстве вы хотите посвятить старым журналам. При вращении обычных журналов вы можете использовать команду MySQLA D - MIN Flush -Logs, чтобы сообщить серверу закрыть текущий файл журнала и открыть новый файл журнала.
Сценарий для выполнения регулярного вращения журнала будет выглядеть примерно примерно (это можно изменить, чтобы отразить ваше базовое имя и местоположение вашего каталога данных, и, возможно, количество старых журналов, которые вы хотите сохранить):
Лучше всего запустить этот скрипт из учетной записи MySQLADM, чтобы гарантировать, что файлы журнала принадлежат этому пользователю. Если вы оставите параметры подключения в файле параметров .my.cnf, вам не нужно указывать какие -либо параметры в команде MySQLadmin сценария. Если вы этого не сделаете, вы можете создать ограниченного пользователя, который ничего не делает, кроме команд обновления. Затем пароль этого пользователя может быть помещен в скрипт с минимальным риском. Если вы хотите сделать это, пользователь должен иметь только разрешения на перезагрузку. Например, чтобы вызвать пользователь Flush и назначить пароль, FL US H Pass, используйте следующее оператор гранта:
Grant Reload on *. * Flush@Localhost идентифицирован "FlushPass"
Когда вам нужно выполнить операцию обновления в сценарии, вы можете сделать это:
mysqladmin -ufush -pflushpass flush -logs
В Linux лучше использовать Logrotate для установки сценария MySQL-Log-Dotate в пакете дистрибуции MySQL, а не написание сценария самостоятельно. Если MySQL-Log-Rotate не установлен автоматически через файл RPM, вам следует проверить каталог поддержки пакета дистрибуции MySQL.
Из -за различий в способах, как серверы обрабатывают файлы журнала обновления, вращение файлов журнала немного отличается между журналами обновлений и обычными журналами. Если вы сообщите серверу использовать имя журнала обновления без расширения (например, дата UP), сервер автоматически создаст имена файлов журнала обновления, используя дату UP -последовательности. Новое журнал обновления генерируется при запуске сервера и когда журнал обновляется. Если вы включите журнал обновлений без указания имени файла, сервер генерирует последовательность файлов журнала обновления, используя имя хоста в качестве базового имени.
При завершении последовательности файлов, сгенерированных таким образом, вы можете захотеть их прекратить на основе их возраста (время, когда они были в последний раз изменены), а не по имени. Причина этого в том, что, поскольку вы не знаете, когда будет выпущена команда Flush-Log, вы не можете ожидать создания фиксированного количества журналов обновлений в любой период времени. Например, если вы резервируете таблицу с MySQldump и используете опцию--flush-logs, новый файл в этой последовательности имен журналов обновления создается с каждой резервной копией.
Для журналов обновления с последовательными именами файлов, автоматически сгенерированным сервером, скрипт завершения на основе возраста, выглядит так:
Команда «Найти» локает и удаляет файлы журнала обновления, которые изменены более недели назад. Важно использовать параметр -name для проверки на числовое расширение файла, чтобы избежать удаления таблиц, указанных неправильным обновлением.
Вы также можете сообщить серверу использовать имя файла журнала с фиксированным обновлением (при желании), что полезно, если вы хотите провести велосипедный журнал обновления так же, как и обычный журнал. Чтобы использовать фиксированное имя журнала обновления, укажите имя, которое включает расширение. Например, вы можете запустить сервер с параметра-log-update = update.log, чтобы использовать дату имени. Сервер всегда будет выключаться и открывать журнал при получении команды Flush-Logs, но сервер не будет генерировать новые файлы каждый раз. В этом случае скрипт вращения журнала для журнала обновления и скрипт для обычного журнала отличается только в базовом имени файла вращения.
Если вы хотите автоматизировать вращение и прекращение журнала, используйте Cron. Предполагается, что сценарии для вращения регулярных журналов и журналов обновлений являются вращающимися и вращающимися - дата вверх - журналы и установлены в каталоге/usr/user/mysql/bin. Зарегистрируйтесь в качестве пользователя MySQLLADM, а затем используйте следующую команду для редактирования файла Crontab пользователя MySQLADM: % crontab -e
Эта команда позволяет редактировать текущее резервное копирование файла Crontab (она может быть пустой, если это не было сделано ранее). Добавьте строки в файл следующим образом:
Эта запись говорит Крон запускать этот сценарий каждое утро в 4 утра. Вы можете изменить время или запланировать его по мере необходимости. Смотрите страницу Crontab Manual для инструкций.
-