MySQL. Журналирование.

85
Находится в разделах:

MySQL поддерживает несколько типов логов, которые призваны помочь отслеживать все те события
которые происходят в mysqld:

  • The error log - содержит информацию об ошибках, которые имели место при запуске, работе или
    останове mysql.
  • The general query log - содержит данные о клиентских подключениях и о всех тех запросах, которые были от них получены.
  • The binary log - включает в себя сведения обо всех запросах, вследствие выполнения которых были произведены изменения в таблицах или самой базе, например UPDATE, DELETE, но не SELECT.
  • The slow query log - содержит информацию о тех запросах, которые превысили лимит времени выполнения (long_query_time) или же не использовали индексы.

До MySQL 5.1.6 журналирование велось на основе log-файлов. Однако, начиная с MySQL 5.1.6, добавилась возможность записывать логи еще и в таблицы. Для этих целей в БД mysql отведены 2 таблицы general_log и slow_log. Теперь администратору базы данных на выбор представляется возможность хранить логи либо в файлах, либо же в таблицах.

Параметр log-output как раз и призван указывать место хранения данных журналирования. Однако наличие этого параметра не включает сам процесс логирования.
log-output может принимать несколько значений:
TABLE - логи пишутся в таблицу.
FILE - логи пишутся в файл.
NONE - логи не пишутся ни в таблицу, ни в файл.
Задавать эти значения можно как по отдельности, так и вместе разделяя их с помощью запятых, запись log-output=FILE, TABLE - указывает, что журналирование будет происходить как в файл, так и в таблицу, а вот при записи log-output=FILE, TABLE, NONE, журналирование не будет никуда записываться, поскольку значение NONE имеет более высокий приоритет по сравнению с другими.
Если же параметру log-output не задать ни какое значение, то по умолчанию, будет присвоено TABLE.  

Итак, включить журналирование типа The general query log можно с помощью параметра log[=file_name]
The slow query log - запускаем с помощью параметра log-slow-queries[=file_name], где file_name - это имя  файла, в который будет происходить запись, но не забываем, что для записи в файл у нас должен быть указан атрибут FILE.

Теперь каждый тип журналирования рассмотрим подробней:

Error Log
Содержит в себе информацию о запуске и остановке mysqld а так же обо всех критических ошибках, которые возникали во время работы сервера.
Для включения такого типа логирования используется параметр log-error[=file_name].
Если мы не укажем имя файла, то сервер сам автоматически создаст файл с именем host_name.err

Если выполнить команду FLUSH LOGS, то существующий log-файл будет переименован (к имени добавится приставка -old) и будет создан новый пустой log-файл.

The general query log
Чуть выше я уже описывал, как запустить такой тип журналирования, сейчас слегка повторюсь:
используем параметр log[=file_name] или -l [file_name]. Если мы не укажем имя log-файла, то будет создан файл host_name.log

The Binary Log
Отслеживаются все те запросы, которые напрямую или косвенно обновляют данные в таблицах.
Кроме того, также отслеживается время, затраченное на выполнение данных запросов.
Использование Binary Log ухудшает производительность сервера примерно на 1%. Однако выгоды, которые можно получить в отдельных случаях от такого типа журналирования могут с верхом перекрыть тот 1 %.
Включение журналирования: log-bin[=base_name].
Если не задано имя файла, то используется имя  host_name-bin.log.
Сервер отслеживает размер этого файла и в случае достижения заданного размера, который определяется параметром max_binlog_size, будет создан новый файл, и запись логов будет вестись уже там.
 The Slow Query Log
 Протоколируются слишком длинные во временном диапазоне запросы.
 Включение: log-slow-queries[=file_name].
 Имя файла по умолчанию: host_name-slow.log.

 

Источник.


Конец
Иммануил Кант более, чем уверен в том, что если дать человеку все, чего он желает, то в ту же минуту он почувствует, что это все не есть все.

Отправить комментарий

CAPTCHA
Чтобы оставить комментарий, введите пожалуйста код, изображенный на картинке
Image CAPTCHA
Введите символы, изображенные на картинке