Регистрация запросов MySQL и пересылка в системный журнал / журнал событий
Я смог включить журнал ошибок, общий журнал запросов, медленный журнал запросов и двоичный журнал и смог перенаправить журналы в системный журнал. У меня есть несколько вопросов о регистрации.
1) Журнал ошибок автоматически перенаправляется в журнал событий в Windows. Как переслать другие журналы в журнал событий?
2) Можно ли преобразовать многострочные журналы mysql в одну строку.
3) Можно ли добавить какой-либо заголовок к файлам журнала или какой-либо тег в начале каждой строки журнала, чтобы было легко определить, какой это файл журнала.
4) В медленных журналах запросов некоторая информация комментируется. Будут ли эти строки с комментариями переданы с использованием rsyslog во всех системах Unix?
# User@Host: debian-sys-maint[debian-sys-maint] @ localhost []
# Query_time: 0.000297 Lock_time: 0.000220 Rows_sent: 0 Rows_examined: 0
SET timestamp=1539924163;
select count(*) into @discard from `information_schema`.`EVENTS`;
5) mysqlbinlog может использоваться для преобразования двоичного журнала в удобочитаемый формат. Есть ли способ, где я могу преобразовать двоичный файл и переслать его в системный журнал без написания какого-либо специального сценария? Есть ли способ в MySQL или Rsyslog?
1 ответ
1) Журнал ошибок автоматически перенаправляется в журнал событий в Windows. Как переслать другие журналы в журнал событий?
В MySQL нет возможности сделать это.
2) Можно ли преобразовать многострочные журналы mysql в одну строку.
Вы не можете изменить формат журнала медленных запросов без изменения исходного кода MySQL. Это жестко запрограммировано:
...
if (my_b_printf(&log_file,
"# Query_time: %s Lock_time: %s"
" Rows_sent: %lu Rows_examined: %lu\n",
query_time_buff, lock_time_buff,
(ulong)thd->get_sent_row_count(),
(ulong)thd->get_examined_row_count()) == (uint)-1)
goto err;
...
И далее для остальных строк для каждого запроса регистрируется.
Но вы можете получить соответствующую информацию о производительности запросов из PERFORMANCE_SCHEMA, и вы даже можете получить сводки по типу запроса. Есть свои преимущества и недостатки. Смотрите, например, этот блог: https://www.percona.com/blog/2014/02/11/performance_schema-vs-slow-query-log/
3) Можно ли добавить какой-либо заголовок к файлам журнала или какой-либо тег в начале каждой строки журнала, чтобы было легко определить, какой это файл журнала.
Не без изменения исходного кода.
4) В медленных журналах запросов некоторая информация комментируется. Будут ли эти строки с комментариями переданы с использованием rsyslog во всех системах Unix?
Вы не можете переслать медленный журнал запросов в системный журнал.
5) mysqlbinlog может использоваться для преобразования двоичного журнала в удобочитаемый формат. Есть ли способ, где я могу преобразовать двоичный файл и переслать его в системный журнал без написания какого-либо специального сценария? Есть ли способ в MySQL или Rsyslog?
Нет.
Но вы можете использовать mysqlbinlog
инструмент для загрузки удаленных двоичных журналов как способ их резервного копирования. См. https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog-backup.html