Spec-Zone .ru
спецификации, руководства, описания, API
|
Как описано в Разделе 5.2, "MySQL Server Logs", MySQL Server может создать несколько различных файлов журнала, чтобы помочь Вам видеть, какое действие имеет место. Однако, следует очистить эти файлы регулярно, чтобы гарантировать, что журналы не приводят слишком большое дисковое пространство в рабочее состояние.
При использовании MySQL с журналированием включенного, можно хотеть поддержать и удалить старые файлы журнала время от времени и сказать MySQL начинать регистрировать к новым файлам. См. Раздел 7.2, "Методы Резервного копирования базы данных".
На Linux (Red Hat) установка можно использовать mysql-log-rotate
сценарий для
этого. Если Вы устанавливали MySQL от распределения ОБ/МИН, этот сценарий должен был быть установлен
автоматически. Будьте осторожны с этим сценарием, если Вы используете двоичный журнал для репликации.
Недопустимо удалить двоичные журналы, пока Вы не уверены, что их содержание было обработано всеми ведомыми
устройствами.
На других системах следует установить короткий сценарий самостоятельно, что Вы запускаете с cron (или его эквивалент) для того, чтобы обработать файлы журнала.
Для двоичного журнала можно установить expire_logs_days
системная переменная, чтобы истечь двоичные файлы журнала
автоматически после данного числа дней (см. Раздел 5.1.4, "Системные
Переменные Сервера"). Если Вы используете репликацию, следует установить переменную не ниже чем
максимальное количество дней, Ваши ведомые устройства могли бы отстать от ведущего устройства. Чтобы удалить
двоичные журналы по требованию, используйте PURGE
BINARY LOGS
оператор (см. Раздел
13.4.1.1,"PURGE BINARY LOGS
Синтаксис").
Можно вынудить MySQL начать использовать новые файлы журнала, сбрасывая журналы. Сбрасывание журнала происходит
когда Вы проблема a FLUSH LOGS
оператор или выполняет mysqladmin журналы сброса, mysqladmin обновление, mysqldump - журналы сброса, или mysqldump - команда основных данных. См. Раздел
13.7.6.3,"FLUSH
Синтаксис", Раздел
4.5.2, "mysqladmin — Клиент для Администрирования MySQL
Server", и Раздела 4.5.4, "mysqldump — Программа Резервного копирования базы данных"
. Кроме того, двоичный журнал сбрасывается, когда его размер достигает значения max_binlog_size
системная переменная.
FLUSH
LOGS
поддерживает дополнительные модификаторы, чтобы включить выборочному сбрасыванию отдельных
журналов (например, FLUSH BINARY LOGS
).
Сбрасывающая журнал работа делает следующее:
Если общее журналирование запроса или медленное журналирование запроса к файлу журнала включаются, сервер закрывает и вновь открывает общий файл журнала запросов или медленный файл журнала запросов.
Если двоичное журналирование включается, сервер закрывает текущий двоичный файл журнала и открывает новый файл журнала со следующим порядковым номером.
Если сервер был запущен с --log-error
опция, чтобы заставить журнал ошибок, который будет писаться
файлу, сервер закрывает и вновь открывает файл журнала.
Сервер создает новый двоичный файл журнала, когда Вы сбрасываете журналы. Однако, это только закрывает и вновь
открывает общие и медленные файлы журнала запросов. Чтобы заставить новые файлы создаваться на Unix,
переименуйте текущие файлы журнала прежде, чем сбросить их. Во время сброса сервер открывает новые файлы журнала
с настоящими именами. Например, если общие и медленные файлы журнала запросов называют mysql.log
и mysql-slow.log
, можно использовать ряд команд как это:
shell>cd
shell>mysql-data-directory
mv mysql.log mysql.old
shell>mv mysql-slow.log mysql-slow.old
shell>mysqladmin flush-logs
На Windows использование переименовывает, а не милливольт.
В этой точке можно сделать резервное копирование mysql.old
и mysql-slow.old
и затем удалите их из диска.
Подобная стратегия может использоваться, чтобы поддержать файл журнала ошибок, если есть тот.
Можно переименовать общий журнал запросов или замедлить журнал запросов во времени выполнения, отключая журнал:
SET GLOBAL general_log = 'OFF';SET GLOBAL slow_query_log = 'OFF';
С отключенными журналами переименуйте файлы журнала внешне; например, из командной строки. Затем включите журналам снова:
SET GLOBAL general_log = 'ON';SET GLOBAL slow_query_log = 'ON';
Этот метод работает над любой платформой и не требует перезапуска сервера.