Spec-Zone .ru
спецификации, руководства, описания, API
|
MySQL Server обеспечивает гибкое управление местом назначения вывода к общему журналу запросов и медленному
журналу запросов, если те журналы включаются. Возможные места назначения для записей журнала являются файлами
журнала или general_log
и slow_log
таблицы в mysql
база данных. Или или оба места назначения могут быть выбраны.
Управление журналом при запуске сервера. --log-output
опция определяет место назначения для вывода журнала. Эта опция сам
по себе не включает журналам. Его синтаксис --log-output[=
:value
,...]
Если --log-output
дается со значением, значение должно быть списком разделенных
запятой значений один или больше слов TABLE
(зарегистрируйте к таблицам),
FILE
(зарегистрируйте к файлам), или NONE
(не
регистрируйте к таблицам или файлам). NONE
Если есть имеет приоритет по
любым другим спецификаторам.
Если --log-output
опускается, место назначения журналирования значения по
умолчанию FILE
.
general_log
системное журналирование средств управления переменной к общему журналу запросов для выбранных мест назначения
журнала. Если определено при запуске сервера, general_log
берет дополнительный параметр 1 или 0, чтобы включить или
отключить журнал. Чтобы определить имя файла кроме значения по умолчанию для журналирования файла, установите general_log_file
переменная. Точно так же slow_query_log
переменное журналирование средств управления к медленному
журналу запросов для выбранных мест назначения и установки slow_query_log_file
определяет имя файла для журналирования файла. Если любой
журнал включается, сервер открывает соответствующий файл журнала и пишет сообщения запуска в него. Однако, далее
журналирование запросов к файлу не происходит если FILE
место назначения журнала
выбирается.
Примеры:
Чтобы записать общие записи журнала запросов в таблицу журнала и файл журнала,
использовать --log-output=TABLE,FILE
выбрать и места назначения журнала и --general_log
включать общему журналу запросов.
Чтобы записать общие и медленные записи журнала запросов только в таблицы журнала,
использовать --log-output=TABLE
выбрать таблицы как место назначения журнала и --general_log
и --slow_query_log
включать обоим журналам.
Чтобы записать медленные записи журнала запросов только в файл журнала,
использовать --log-output=FILE
выбрать файлы как место назначения журнала и --slow_query_log
включать медленному журналу запросов. (В этом случае, потому что место назначения журнала значения по
умолчанию FILE
, Вы могли опустить --log-output
опция.)
Управление журналом во времени выполнения. Системные переменные, связанные с таблицами журнала и файлами, включают управлению временем выполнения журналированием:
Глобальная переменная log_output
системная переменная указывает на текущее место назначения
журналирования. Это может быть изменено во времени выполнения, чтобы изменить место назначения.
Глобальная переменная general_log
и slow_query_log
переменные указывают, замедляется ли общий журнал запросов
и, журнал запросов включаются (ON
) или отключенный (OFF
).
Можно установить эти переменные во времени выполнения, чтобы управлять, включаются ли журналы.
Глобальная переменная general_log_file
и slow_query_log_file
переменные указывают на имена общего журнала запросов
и замедляют файлы журнала запросов. Можно установить эти переменные при запуске сервера или во времени
выполнения, чтобы изменить названия файлов журнала.
Чтобы отключить или включить общему журналированию запроса для текущего соединения,
установите сеанс sql_log_off
переменная к ON
или OFF
.
Использование таблиц для вывода журнала предлагает следующие преимущества:
У записей журнала есть стандартный формат. Чтобы вывести на экран текущую структуру таблиц журнала, используйте эти операторы:
SHOW CREATE TABLE mysql.general_log;SHOW CREATE TABLE mysql.slow_log;
Содержание журнала доступно через SQL-операторы. Это включает использованию запросов, которые выбирают только те записи журнала, которые удовлетворяют определенные критерии. Например, чтобы выбрать содержание журнала, связанное с определенным клиентом (который может быть полезным для идентификации проблематичных запросов от того клиента), легче сделать это использование таблицы журнала чем файл журнала.
Журналы доступны удаленно через любой клиент, который может соединиться с сервером и выпустить запросы (если у клиента есть соответствующие табличные полномочия журнала). Не необходимо войти в систему к узлу сервера и непосредственно получить доступ к файловой системе.
У табличной реализации журнала есть следующие характеристики:
Вообще, основная цель таблиц журнала состоит в том, чтобы предоставить интерфейс пользователям, чтобы наблюдать выполнение времени выполнения сервера, не вмешаться в его выполнение времени выполнения.
CREATE
TABLE
, ALTER TABLE
, и DROP TABLE
допустимые операции на таблице журнала. Для ALTER TABLE
и DROP TABLE
, таблица журнала не может использоваться и должна быть
отключена, как описано позже.
По умолчанию таблицы журнала используют CSV
механизм
хранения, который пишет данные в разделенном от запятой формате значений. Для пользователей, у которых
есть доступ к .CSV
файлы, которые содержат, регистрируют табличные данные,
файлы легко импортировать в другие программы, такие как электронные таблицы, которые могут обработать
ввод CSV.
Таблицы журнала могут быть изменены, чтобы использовать MyISAM
механизм
хранения. Невозможно использовать ALTER
TABLE
изменить таблицу журнала, которая используется. Журнал должен быть отключен
сначала. Никакие механизмы кроме CSV
или MyISAM
являются законными для таблиц журнала.
Чтобы отключить журналирование так, чтобы можно было изменить (или отбрасывание)
таблицу журнала, можно использовать следующую стратегию. Пример использует общий журнал запросов;
процедура для медленного журнала запросов подобна, но использует slow_log
таблица и slow_query_log
системная переменная.
SET @old_log_state = @@global.general_log;SET GLOBAL general_log = 'OFF';ALTER TABLE mysql.general_log ENGINE = MyISAM;SET GLOBAL general_log = @old_log_state;
TRUNCATE
TABLE
допустимая работа на таблице журнала. Это может использоваться, чтобы истечь записи
журнала.
RENAME
TABLE
допустимая работа на таблице журнала. Можно атомарно переименовать таблицу журнала
(чтобы выполнить вращение журнала, например) использование следующей стратегии:
USE mysql;DROP TABLE IF EXISTS general_log2;CREATE TABLE general_log2 LIKE general_log;RENAME TABLE general_log TO general_log_backup, general_log2 TO general_log;
CHECK TABLE
допустимая работа на таблице журнала.
LOCK
TABLES
не может использоваться на таблице журнала.
INSERT
, DELETE
, и UPDATE
не может использоваться на таблице журнала. Эти операции
разрешаются только внутренне к серверу непосредственно.
FLUSH TABLES WITH READ LOCK
и состояние глобальной переменной read_only
системная переменная не имеет никакого эффекта на таблицы
журнала. Сервер может всегда писать в таблицы журнала.
Записи, записанные таблицам журнала, не пишутся двоичному журналу и таким образом не тиражируются в ведомые серверы. (До MySQL 5.6.9 это не всегда осуществлялось правильно. См. Ошибку #14741537.)
Чтобы сбросить таблицы журнала или файлы журнала, использовать FLUSH TABLES
или FLUSH
LOGS
, соответственно.
Разделение таблиц журнала не разрешается.
Перед MySQL 5.6.6 mysqldump не выводит general_log
или slow_query_log
таблицы для
дампов mysql
база данных. С 5.6.6, дамп включает операторы, чтобы
воссоздать те таблицы так, чтобы они не отсутствовали после перезагрузки файла дампа. Табличное
содержание журнала не выводится.