WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
MySQL имеет несколько различных журналов (протоколов), которые могут
помочь Вам выяснить то, что происходит внутри Все файлы регистрации могут быть найдены в каталоге данных
Сервер Этот протокол содержит информацию, указывающую, когда На некоторых операционных системах, файл регистрации ошибок будет
содержать трассировку стека для случая падения Если Вы хотите знать, что происходит внутри По умолчанию скрипт Записи в этом файле регистрации записываются в порядке получения запросов
ОБРАТИТЕ ВНИМАНИЕ: Файл регистрации модификаций заменен
двоичным файлом регистрации. Подробности в разделе
"4.9.4 Двоичный файл регистрации". При запуске с опцией ОБРАТИТЕ ВНИМАНИЕ: Для работы вышеупомянутой схемы Вы НЕ
должны создавать свои собственные файлы с именами, совпадающими с именем
файла регистрации модификаций + некоторые расширения, которые могут быть
расценены как номер, в каталоге, используемом файлом регистрации модификаций!
Если Вы используете параметры Регистрация модификаций интеллектуальна потому, что регистрирует только
инструкции, которые, действительно, модифицирует данные. Так что команда
Регистрация модификации будет выполнена немедленно после того, как запрос
завершится, но прежде, чем любые блокировки будут сняты. Это гарантирует, что
файл регистрации будет отражать порядок выполнения процессов. Если Вы хотите модифицировать базу данных из журналов модификации, Вы
могли бы делать следующее (считается, что Ваши файлы регистрации модификаций
имеют имена формы `file_name.###'): Здесь команда Это может быть полезно, если Вы должны возвратиться к файлам копии после
аварийной ситуации, и Вы хотите восстановить модификации, которые произошли
между резервированием и слетом системы. В будущем двоичный файл регистрации полностью заменит собой файл
регистрации модификаций, так что я рекомендую Вам перейти на этот формат
файла регистрации как можно скорее! Двоичный файл регистрации содержит всю информацию, которая является
доступной для обновлений, в более эффективном формате. Он также содержит
информацию относительно того, как долго обрабатывался каждый запрос, который
модифицировал базу данных. Двоичный файл регистрации также используется, когда Вы копируете данные на
подчиненный компьютер с главного. Подробности в разделе
"4.10 Репликация в MySQL". При запуске с параметром Вы можете использовать следующие параметры для К имени двоичного файла регистрации Чтобы знать, которые двоичные журналы использовались, Если Вы используете репликацию, то не должны удалять старые двоичные
журналы, пока не будете уверены, что никакой подчиненный сервер не будет
когда-либо их использовать. Один способ сделать это состоит в том, чтобы
использовать команду Вы можете исследовать двоичный журнал командой Вы можете также использовать программу Вызов Если Вы используете Двоичная регистрация будет выполнена немедленно после того, как запрос
завершится, но прежде, чем любые блокировки будут сняты. Это гарантирует, что
файл регистрации будет отражать порядок выполнения команд. Все модификации ( Параметр Если Вы используете модификацию или двоичный файл регистрации,
параллельные вставки не будут работать вместе с
При запуске с опцией Медленный файл регистрации запроса регистрируется после того, как запрос
выполнен, и после того, как все блокировки были сняты. Это может отличаться
от порядка выполнения инструкций. Если никакое имя файла не задано, используется имя хоста с окончанием
Медленный файл регистрации запроса может использоваться, чтобы найти
запросы, которые берут длительное время, и таким образом являются кандидатами
на оптимизацию. Имея дело с большим файлом регистрации, который может стать
трудной задачей, Вы можете пропустить его через программу
Если Вы используете MySQLимеет много журналов, которые весьма облегчают работу. Однако, их
нужно время от времени чистить, чтобы гарантировать, что файлы регистрации не
занимают слишком много дискового пространства. При использовании MySQL с журналами Вы будете время от
времени удалять/резервировать старые журналы и сообщать, чтобы
MySQL начал регистрацию событий в новых файлах. Подробности
есть в разделе "4.4.1 Обновление протоколов
". В Linux (дистрибутив На других системах Вы должны установить скрипт сами так, чтобы он
вызывался для обработки журналов из Вы можете вынуждать MySQL начать использование новых
журналов, используя Вышеупомянутая команда делает следующее: Если Вы используете только регистрацию модификации, Вы должны только
сбросить протокол на диск, переместить его в резервную копию и начать новый
файл протокола. Например, таким образом:
4.9 Протоколы в MySQL
mysqld
:
Файл регистрации ошибок Проблемы со стартом, работой или
остановкой mysqld
.Файл регистрации isam Регистрирует все изменения для таблиц
системы ISAM. Использован только для отладки isam-кода. Файл регистрации запросов Регистрирует все установленные
подключения и выполненные запросы. Файл регистрации модификаций Сохраняет все инструкции,
которые изменяют данные. Двоичный файл регистрации Сохраняет все инструкции, которые
изменяет что-либо. Использован также для репликации. Медленный файл регистрации Сохраняет все запросы, которые
заняли времени больше, чем long_query_time
для своего выполнения
или не использовали индексы.mysqld
. Вы можете вынуждать mysqld
вновь открывать
журналы (или переключаться на новые журналы), выполняя команду FLUSH
LOGS
. Подробности в разделе "4.5.3
Синтаксис FLUSH
".4.9.1 Файл регистрации ошибок
mysqld
пишет все ошибки на stderr, который скрипт
safe_mysqld
переназначает в файл с именем
'hostname'.err
. В Windows mysqld
пишет ошибки в
файл с именем \mysql\data\mysql.err.mysqld
был запущен и остановлен, а также любые критические ошибки. Если
mysqld
неожиданно свалился, и safe_mysqld
должен
перезапустить mysqld
, safe_mysqld
оставит строку
restarted mysqld
в этом файле. Этот файл регистрации также
сохраняет предупреждение, если mysqld
обращает внимание на
таблицу, которая должна быть автоматически проверена или восстановлена.mysqld
. Это может
использоваться, чтобы выяснить, где и почему свалился mysqld
.
Подробности в разделе "6.1.4
Использование трассировки стека".4.9.2 Файл регистрации запросов
mysqld
, Вы должны
запустить его с опцией --log[=file]
. Это регистрирует все
подключения и запросы в журнале (по умолчанию `'hostname'.log').
Этот файл регистрации может быть очень полезен, когда Вы подозреваете ошибку
в коде клиента и хотите знать точно, что именно ему передавал
mysqld
.mysql.server
запускает сервер MySQL с
опцией -l
. Если Вы нуждаетесь в лучшей эффективности, когда
запускаете MySQL в промышленной среде, Вы можете удалить опцию
-l
из mysql.server
или заменить ее на
--log-binary
.mysqld
. Это может отличаться от порядка выполнения инструкций.
Этим данный журнал отличается от файла регистрации модификаций и двоичного
файла регистрации, которые пишутся после того, как запрос выполнен, но
прежде, чем любые блокировки будут сняты.4.9.3 Файл регистрации модификаций
--log-update[=file_name]
mysqld
пишет журнал, содержащий все команды SQL, которые меняют
данные. Если имя файла не задано, в качестве значения по умолчанию
используется имя хоста. Если имя файла задано, но не содержит путь, файл
будет написан в каталоге данных. Если file_name не имеет расширения,
mysqld
создаст имена журнала так: file_name.###, здесь
###
номер, который будет увеличен каждый раз, когда Вы
выполняете команды mysqladmin refresh
, mysqladmin
flush-logs
, FLUSH LOGS
или перезапускаете сервер.--log
или -l
,
mysqld
пишет общий файл регистрации с именем файла
`hostname.log'. Перезапуски не создадут новый журнал, просто старый
будет закрываться и открываться вновь. В этом случае его можно копировать
(в Unix-системах) так:
mv hostname.log hostname-old.log
mysqladmin flush-logs
cp hostname-old.log to-backup-directory
rm hostname-old.log
UPDATE
или DELETE
с WHERE
, которая не
находит никаких строк, не будет записана в файл регистрации. Это даже
пропускает инструкции UPDATE
, которые устанавливают столбец в
значение, которое он уже имеет!
shell> ls -1 -t -r file_name.[0-9]* | xargs cat | mysql
ls
используется, чтобы получить все журналы в
правильном порядке, что очень важно.4.9.4 Двоичный файл регистрации
--log-bin[=file_name]
mysqld
пишет журнал, содержащий все команды SQL, которые меняли
данные в базе. Если имя файла не задано, используется имя хоста с суффиксом
-bin
. Если имя файла задано, но не содержит путь, файл будет
записан в каталог данных.mysqld
, чтобы
воздействовать на то, что регистрируется в двоичном файле регистрации:
binlog-do-db=database_name
Сообщает, что следует регистрировать модификации для определенной базы данных
и исключать все другие, не упомянутые явно (например:
binlog-do-db=some_database
).binlog-ignore-db=database_name
Сообщает, что модификации данной базы данных не должны регистрироваться в
двоичном файле регистрации (например:
binlog-ignore-db=some_database
).mysqld
конкатенирует
расширение, которое является номером, растущим каждый раз, когда Вы
выполняете команды mysqladmin refresh
,
mysqladmin flush-logs
, FLUSH LOGS
или
перезапускаете весь сервер.mysqld
также создает двоичный индексный файл регистрации, который содержит имена
всех используемых двоичных журналов. По умолчанию он имеет то же самое имя,
что и двоичный журнал, но с расширением '.index'
. Вы можете
изменять имя двоичного индексного файла опцией
--log-bin-index=[filename]
.mysqladmin flush-logs
один раз в день и
затем удалять любые файлы регистрации, которые старше трех дней.mysqlbinlog
.
Например, Вы можете обновить сервер MySQL из двоичного файла регистрации
следующим образом:
mysqlbinlog log-file | mysql -h server_name
mysqlbinlog
, чтобы
читать двоичный файл регистрации непосредственно с удаленного сервера MySQL!
mysqlbinlog --help
даст Вам большее количество
информации того, как использовать эту программу.BEGIN [WORK]
или
SET AUTOCOMMIT=0
, то Вы должны использовать двоичный файл
регистрации MySQL для целей резервирования вместо старого формата файла
регистрации модификаций.UPDATE
, DELETE
или
INSERT
), которые изменяют транзакционные таблицы (подобные
таблицам BDB), кэшируются до COMMIT
. Любые модификации в
нетранзакционных таблицах будут сохранены в двоичном файле регистрации сразу.
Каждый процесс будет на старте распределять буфер
binlog_cache_size
, чтобы буферизовать запросы. Если запрос
больше, чем этот буфер, процесс откроет временный файл, чтобы обработать
большой кэш. Временный файл будет удален, когда процесс заканчится.max_binlog_cache_size
может использоваться, чтобы
ограничить максимальный размер буфера, используемого, чтобы кэшировать запрос
для нескольких транзакций.CREATE ... INSERT
и INSERT ... SELECT
. Это должно
гарантировать, что Вы можете пересоздать точную копию Ваших таблиц, применяя
регистрацию к резервной копии.4.9.5 Медленный файл регистрации
--log-slow-queries[=file_name]
mysqld
пишет журнал, содержащий все команды SQL, которые
обрабатывались дольше, чем long_query_time
. Время, которое
понадобилось, чтобы получить начальные блокировки таблицы, не учитывается как
время выполнения запроса.-slow.log
. Если имя файла задано, но не содержит путь, файл
будет записан в каталоге данных.mysqldumpslow
, чтобы получать резюме запросов, которые
появляются в файле регистрации.--log-long-format
, также будут выведены
запросы, не использующие индексы. Подробности в разделе
"4.1.1 Параметры командной строки
mysqld".4.9.6 Сопровождение журналов
Redhat
) Вы можете для этого использовать
скрипт mysql-log-rotate
. Если Вы установили
MySQL из пакета RPM, нужный скрипт должен быть уже
установлен автоматически.cron
.mysqladmin flush-logs
или через команду
SQL FLUSH LOGS
. Если Вы используете MySQL 3.21,
Вы должны использовать mysqladmin refresh
.--log
) или отслеживание медленных запросов (опция
--log-slow-queries
), файл протокола будет закрыт и открыт заново
(по умолчанию это `mysql.log' и ``hostname`-slow.log').
--log-update
), то закрывается обновленный протокол и открывается
новый файл протокола с более высоким номером последовательности.
shell> cd mysql-data-directory
shell> mv mysql.log mysql.old
shell> mysqladmin flush-logs
Найди своих коллег! |