В MySQL журнал является очень важным компонентом. Он записывает различную информацию о рабочем состоянии базы данных, включая информацию об ошибках, информацию о запросах, информацию о транзакциях и т. д. Это ключевая основа для устранения неполадок, оптимизации производительности, восстановления данных и т. д. резервная копия.
В этой статье основное внимание будет уделено различным общим журналам MySQL, проанализированы роль, основные принципы и методы реализации журналов MySQL, а также проиллюстрированы их примерами. Это позволяет читателям получить более полное и глубокое понимание различных журналов MySQL, что помогает им лучше использовать MySQL и управлять им.
Журналы в MySQL в основном делятся на два типа: журналы уровня сервера и журналы уровня механизма (журналы уровня механизма. В этой статье в основном представлены журналы механизма InnoDB).
Используется для записи различных операций и исключений на уровне MySQL Server.
Журнал ошибок (Error log) — это запись ошибок и предупреждающих сообщений, генерируемых MySQL во время запуска и работы.
Функция журнала ошибок — записывать аномальное состояние и информацию об ошибках MySQL Server, чтобы помочь администраторам или разработчикам найти причину и устранить проблему. Общие сообщения об ошибках включают сбой при запуске базы данных, ошибки подключения, ошибки операторов SQL, недостаточные разрешения, недостаточное дисковое пространство и т. д., а также сбои программ и ошибки во время выполнения, вызванные такими факторами, как система и оборудование.
Во внутренней реализации MySQL журналы ошибок автоматически генерируются и записываются на уровне сервера. Когда MySQL Server запускается, он автоматически создает файл журнала ошибок и постоянно записывает информацию об исключениях во время работы. Если во время работы MySQL Server возникает аномалия, подробная информация об ошибках и предупреждениях записывается в файл журнала ошибок, а для каждого события журнала ошибок генерируется независимый номер, чтобы облегчить администратору поиск и устранение неисправностей с помощью номера ошибки.
Binlog (двоичный журнал) — это двоичный журнал, используемый в MySQL для записи операторов модификации выполнения. Его функция заключается в записи операций модификации, выполняемых MySQL Server (таких как операции вставки, обновления, удаления в таблице данных и т. д.), и записи их в двоичном формате. Binlog в основном используется для восстановления данных MySQL, резервного копирования и репликации «главный-подчиненный».
Генерация и запись binlog завершается на уровне MySQL Server. На уровне сервера MySQL binlog называется «Журналом репликации» или «Журналом транзакций». Он записывает все измененные операции (хранящиеся в двоичной форме), выполняемые уровнем сервера MySQL, а не записывает их в базовый механизм хранения.
Во время выполнения MySQL все операции модификации передаются MySQL-серверу для обработки и записываются в binlog. После того, как MySQL завершит все операции модификации и зафиксирует транзакцию, binlog запишет операции модификации на диск. В это время операции модификации, записанные в binlog, могут использоваться для таких операций, как восстановление данных, резервное копирование и репликация «главный-подчиненный».
Три формата бинлога
Binlog — очень важный инструмент в MySQL Server. Он играет очень важную роль в полной записи и отслеживании операций изменения базы данных и операций репликации «главный-подчиненный». Когда администраторы MySQL выполняют управление операциями и обслуживание базы данных на сервере MySQL, им необходимо полностью понимать функции, принципы и навыки использования binlog.
Журнал ретрансляции — это тип журнала в процессе репликации «главный-подчиненный» базы данных MySQL. Он в основном используется для записи информации о ретрансляции резервного сервера. Журнал ретрансляции создается на подчиненном сервере, в котором записывается информация бинлога, скопированная с главного сервера, и сохраняется на локальном диске.
Генерация и запись журнала ретрансляции завершается на уровне подчиненного (подчиненного) сервера. Когда информацию бинлога необходимо скопировать на резервный сервер, бинлог, записанный на главном сервере, преобразуется в журнал ретрансляции и сохраняется на резервном сервере. (Подчиненный каталог журнала) и синхронизируйте записи изменений с таблицей данных резервного сервера.
Через журнал ретрансляции осуществляется репликация и синхронизация данных между главным и подчиненным серверами. В архитектуре «главный-подчиненный» базы данных MySQL использование технологии релейного журнала может в наибольшей степени обеспечить согласованность и правильность данных, так что можно поддерживать синхронизацию данных между главным и подчиненным серверами.
Журнал DDL (язык определения данных) — это тип журнала базы данных MySQL, используемый для записи операций языка определения данных. Операции DDL используются для управления, обслуживания и изменения структуры объектов базы данных, таких как создание и изменение таблиц данных, представлений, индексов и хранимых процедур. В журнале DDL записываются все подробности и метаданные операций DDL в базе данных, включая сам оператор DDL, информацию метаданных объекта операции и время модификации.
Общий журнал — это очень простой тип журнала в MySQL, используемый для записи информации о доступе и работе MySQL-сервера. Когда общий журнал включен, MySQL Server будет записывать информацию о каждом подключении клиента к серверу и каждом событии операции в указанный файл журнала, включая информацию о подключении и отключении, выполненных запросах и операторах SQL и т. д.
Общий журнал обычно используется для устранения неполадок и отладки серверов MySQL. Он помогает администраторам и разработчикам отслеживать и отлаживать сложные проблемы и запросы, такие как обнаружение активности пользователей, отладка синтаксических ошибок, а также выявление задержек или проблем с памятью.
Включение общего журнала приведет к тому, что журнал займет большой объем дискового пространства и повлияет на производительность сервера MySQL. Поэтому общий журнал следует включать только при необходимости в производственной среде. Рекомендуется использовать общий журнал в средах разработки, отладки, тестирования и других средах, чтобы лучше отслеживать рабочее состояние сервера MySQL и выявлять сбои.
Журнал медленных запросов — это метод ведения журнала базы данных MySQL. Как следует из названия, он используется для записи операторов запроса с медленным временем выполнения и в основном используется для анализа и оптимизации эффективности запросов.
Основные функции медленного запроса включают в себя следующие моменты
Когда MySQL Server работает, чтобы определить, является ли оператор SQL медленным запросом, необходимо сравнить время выполнения и время, указанное в параметрах конфигурации. Если оно превышает указанное время, это считается оператором запроса с медленным выполнением. время.
Когда MySQL Server записывает операторы запроса с медленным временем выполнения, он записывает синтаксис и время выполнения этих операторов в журнал медленных запросов (местоположение по умолчанию — /data/mysql/hostname-slow.log).
Журнал медленных запросов будет занимать большой объем дискового пространства и ресурсов, поэтому его следует использовать с осторожностью в производственной среде. Рекомендуется включать его только тогда, когда требуются запросы и устранение проблем с производительностью.
В базе данных MySQL каждый механизм хранения имеет собственный журнал уровня механизма, который используется для записи операций и информации уровня механизма хранения. Журналы уровня механизма специфичны для механизмов хранения.
Вообще говоря, журналы уровня механизма в основном записывают следующую информацию:
1) Информация о транзакции: информация о запуске, фиксации, откате транзакции и других операциях.
2) Изменение информации: операции со структурой хранения, такие как добавление, удаление и изменение таблиц данных.
3) Информация о странице данных: записывает информацию и связанное с ней состояние страницы данных, включая такие операции, как чтение, запись и изменение страницы данных.
4) Информация о блокировке: информация о блокировке, используемая в данный момент двигателем. Будет записываться время блокировки, тип блокировки, диапазон блокировки и т. д.
5) Операции ввода-вывода: записывайте подробную информацию об операциях ввода-вывода, такую как потребление времени ввода-вывода, страницы данных операций ввода-вывода, блоки данных операций ввода-вывода и т. д.
Механизм хранения InnoDB имеет два журнала уровня механизма: журнал повторного выполнения и журнал отмены, которые используются для обеспечения согласованности и целостности данных при отправке транзакций.
Журнал повторов (redo log) — это тип журнала, записываемый MySQL при сохранении данных. Журнал повторного выполнения записывает операции изменения файлов данных в механизме хранения InnoDB и используется для обеспечения согласованности данных базы данных MySQL в случаях аномальных сбоев и других ситуаций. Журнал повторного выполнения — это одна из реализаций механизма WAL (ведение журнала упреждающей записи) в MySQL.
Журнал повторов имеет следующие функции:
В базе данных MySQL журнал повторов использует для хранения кольцевой буфер фиксированного размера. Размер буфера можно настроить с помощью параметров. После заполнения текущего журнала будет создан новый файл журнала, и запись операций продолжится. Администраторы могут вручную запускать или останавливать функцию журнала повторов для достижения желаемого гибкого управления.
Журнал отмены — это тип журнала, в котором MySQL записывает транзакции в механизме хранения InnoDB. Он записывает информацию о состоянии перед операцией изменения каждой выполняемой транзакции для реализации отката транзакции.
Журнал отмены может предоставлять следующие функции:
"Принцип отмены журнала:"