Регистрация запросов MySQL и пересылка в системный журнал / журнал событий

0

Я смог включить журнал ошибок, общий журнал запросов, медленный журнал запросов и двоичный журнал и смог перенаправить журналы в системный журнал. У меня есть несколько вопросов о регистрации.

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?

  • 0
    SET timestamp указывается, если она такая же, как и раньше.
Теги:
logging
mysql-slow-query-log

1 ответ

0

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.

  • 0
    Спасибо, Билл. Я проверю это. Есть идеи по поводу других вопросов?
  • 0
    И формат меняется от версии к версии.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню