Понимание различных журналов MySQL в одной статье
Понимание различных журналов MySQL в одной статье

1. Введение

В MySQL журнал является очень важным компонентом. Он записывает различную информацию о рабочем состоянии базы данных, включая информацию об ошибках, информацию о запросах, информацию о транзакциях и т. д. Это ключевая основа для устранения неполадок, оптимизации производительности, восстановления данных и т. д. резервная копия.

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

2. Типы и объем журналов MySQL

Журналы в MySQL в основном делятся на два типа: журналы уровня сервера и журналы уровня механизма (журналы уровня механизма. В этой статье в основном представлены журналы механизма InnoDB).

Введение в журналы уровня сервера

Используется для записи различных операций и исключений на уровне MySQL Server.

  • «Журнал ошибок:» Документ MySQL Ошибки и предупреждения при работе сервера
  • «Двоичный журнал (двоичный журнал): записывает все операции модификации, выполняемые уровнем сервера MySQL»
  • «Журнал реле:» Процесс репликации главный-подчиненный середина использует бревный тип, и подчиненный сервер записывает все из Двойственные данные на главный сервер. журнал(Binary журнал) информация
  • 「DDL Log :」 Запись DDL-операций типа бревно.
  • «Общий журнал (журнал запросов):» Документ MySQL Все операторы запроса на уровне сервера
  • «Журнал медленных запросов (журнал медленных запросов):» Запись операторов запроса, выполнение которых занимает слишком много времени.

Введение в журналы движка InnoDB

  • 「Redo Log:」 Записывайте операции по модификации процесса серединаиз дел, чтобы обеспечить безопасность дел.
  • 「Undo Log:」 Используется для отмены операций модификации, связанных с делами, для обеспечения атомарности дел.

3. Журналы уровня сервера

Журнал ошибок Журнал ошибок

Журнал ошибок (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, могут использоваться для таких операций, как восстановление данных, резервное копирование и репликация «главный-подчиненный».

Три формата бинлога

  • «Формат заявления:» запись в бинлоге SQL заявление, то есть SQL Само высказывание запомнилось binlog середина. Преимущество состоит в том, что количество записей невелико, но недостатком является то, что некоторые операторы очень неопределенны, например: UUID() Функции и т. д. или выполняемые случайные функции и т. д. могут быть нестабильными.
  • «Формат строки:» Каждое изменение данных в строке фиксируется существующим. binlog в. Преимущество заключается в том, что он может записывать более точную информацию о модификации, но недостатком является то, что объем записываемой информации больше.
  • «Смешанный формат:» Statement и Row Смешанное использование форматов, MySQL сам решит, какой метод использовать, чтобы запись binlog Найдите оптимальное решение.

Binlog — очень важный инструмент в MySQL Server. Он играет очень важную роль в полной записи и отслеживании операций изменения базы данных и операций репликации «главный-подчиненный». Когда администраторы MySQL выполняют управление операциями и обслуживание базы данных на сервере MySQL, им необходимо полностью понимать функции, принципы и навыки использования binlog.

Журнал реле Журнал реле

Журнал ретрансляции — это тип журнала в процессе репликации «главный-подчиненный» базы данных MySQL. Он в основном используется для записи информации о ретрансляции резервного сервера. Журнал ретрансляции создается на подчиненном сервере, в котором записывается информация бинлога, скопированная с главного сервера, и сохраняется на локальном диске.

Генерация и запись журнала ретрансляции завершается на уровне подчиненного (подчиненного) сервера. Когда информацию бинлога необходимо скопировать на резервный сервер, бинлог, записанный на главном сервере, преобразуется в журнал ретрансляции и сохраняется на резервном сервере. (Подчиненный каталог журнала) и синхронизируйте записи изменений с таблицей данных резервного сервера.

Через журнал ретрансляции осуществляется репликация и синхронизация данных между главным и подчиненным серверами. В архитектуре «главный-подчиненный» базы данных MySQL использование технологии релейного журнала может в наибольшей степени обеспечить согласованность и правильность данных, так что можно поддерживать синхронизацию данных между главным и подчиненным серверами.

Журнал DDL Журнал операций DDL

Журнал DDL (язык определения данных) — это тип журнала базы данных MySQL, используемый для записи операций языка определения данных. Операции DDL используются для управления, обслуживания и изменения структуры объектов базы данных, таких как создание и изменение таблиц данных, представлений, индексов и хранимых процедур. В журнале DDL записываются все подробности и метаданные операций DDL в базе данных, включая сам оператор DDL, информацию метаданных объекта операции и время модификации.

Общий журнал запросов журнала

Общий журнал — это очень простой тип журнала в MySQL, используемый для записи информации о доступе и работе MySQL-сервера. Когда общий журнал включен, MySQL Server будет записывать информацию о каждом подключении клиента к серверу и каждом событии операции в указанный файл журнала, включая информацию о подключении и отключении, выполненных запросах и операторах SQL и т. д.

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

Включение общего журнала приведет к тому, что журнал займет большой объем дискового пространства и повлияет на производительность сервера MySQL. Поэтому общий журнал следует включать только при необходимости в производственной среде. Рекомендуется использовать общий журнал в средах разработки, отладки, тестирования и других средах, чтобы лучше отслеживать рабочее состояние сервера MySQL и выявлять сбои.

Журнал медленных запросов Журнал медленных запросов

Журнал медленных запросов — это метод ведения журнала базы данных MySQL. Как следует из названия, он используется для записи операторов запроса с медленным временем выполнения и в основном используется для анализа и оптимизации эффективности запросов.

Основные функции медленного запроса включают в себя следующие моменты

  1. Помогите администраторам обнаружить операторы SQL, выполнение которых занимает много времени, а также проблемы с задержками или производительностью.
  2. поддержка оптимизации SQL-запросов,Целенаправленно настраивайте индексы, оптимизируйте структуры операторов и т. д.,Тем самым улучшая производительность базы данных.
  3. Близко к реальной производственной среде и привычкам доступа,чтобы лучше понять поведение SQL-запросов,и расширять базу Управление данными и оптимизация производительности и знания.

Когда MySQL Server работает, чтобы определить, является ли оператор SQL медленным запросом, необходимо сравнить время выполнения и время, указанное в параметрах конфигурации. Если оно превышает указанное время, это считается оператором запроса с медленным выполнением. время.

Когда MySQL Server записывает операторы запроса с медленным временем выполнения, он записывает синтаксис и время выполнения этих операторов в журнал медленных запросов (местоположение по умолчанию — /data/mysql/hostname-slow.log).

Журнал медленных запросов будет занимать большой объем дискового пространства и ресурсов, поэтому его следует использовать с осторожностью в производственной среде. Рекомендуется включать его только тогда, когда требуются запросы и устранение проблем с производительностью.

4. Журналы уровня двигателя

В базе данных MySQL каждый механизм хранения имеет собственный журнал уровня механизма, который используется для записи операций и информации уровня механизма хранения. Журналы уровня механизма специфичны для механизмов хранения.

Вообще говоря, журналы уровня механизма в основном записывают следующую информацию:

1) Информация о транзакции: информация о запуске, фиксации, откате транзакции и других операциях.

2) Изменение информации: операции со структурой хранения, такие как добавление, удаление и изменение таблиц данных.

3) Информация о странице данных: записывает информацию и связанное с ней состояние страницы данных, включая такие операции, как чтение, запись и изменение страницы данных.

4) Информация о блокировке: информация о блокировке, используемая в данный момент двигателем. Будет записываться время блокировки, тип блокировки, диапазон блокировки и т. д.

5) Операции ввода-вывода: записывайте подробную информацию об операциях ввода-вывода, такую ​​как потребление времени ввода-вывода, страницы данных операций ввода-вывода, блоки данных операций ввода-вывода и т. д.

Механизм хранения InnoDB имеет два журнала уровня механизма: журнал повторного выполнения и журнал отмены, которые используются для обеспечения согласованности и целостности данных при отправке транзакций.

Журнал повторов Журнал повторов

Журнал повторов (redo log) — это тип журнала, записываемый MySQL при сохранении данных. Журнал повторного выполнения записывает операции изменения файлов данных в механизме хранения InnoDB и используется для обеспечения согласованности данных базы данных MySQL в случаях аномальных сбоев и других ситуаций. Журнал повторного выполнения — это одна из реализаций механизма WAL (ведение журнала упреждающей записи) в MySQL.

Журнал повторов имеет следующие функции:

  • существуют Восстановление при сбое системы или перезагрузке данные: повторить log Все изменения данных операций фиксируются, что позволяет MySQL Восстановите все изменения, которые не были записаны на диск, в случае сбоя, гарантируя, что система не будет разрушена и сохранится ее целостность.
  • Уменьшите количество случайных записей на диск: MySQL Случайные операции, записанные на диск, очень неэффективны, повторяйте log Механизм может MySQL дляданные Исправлятьиззапись набора операцийсередина Вместе эффективнееизместо,Это позволяет избежать сценариев случайного чтения и записи диска для каждой операции.,Улучшите производительность.
  • выполнить MySQL серединаиз Многоверсионное управление параллелизмом: несколько дел работают с одной и той же базой данныхчас,MySQL проходить redo log и другие механизмы для восстановленияделаиз ACID и MVCC Функции, обеспечивающие безопасность одновременного выполнения нескольких программ.

В базе данных MySQL журнал повторов использует для хранения кольцевой буфер фиксированного размера. Размер буфера можно настроить с помощью параметров. После заполнения текущего журнала будет создан новый файл журнала, и запись операций продолжится. Администраторы могут вручную запускать или останавливать функцию журнала повторов для достижения желаемого гибкого управления.

Отменить журнал Отменить журнал

Журнал отмены — это тип журнала, в котором MySQL записывает транзакции в механизме хранения InnoDB. Он записывает информацию о состоянии перед операцией изменения каждой выполняемой транзакции для реализации отката транзакции.

Журнал отмены может предоставлять следующие функции:

  1. Поддержкадела отката: когдадела можно использовать при выполнении операции отката. undo log Информация серединаиз возвращается к состоянию до начала дел.
  2. MVCC: поддержка MVCC Предыдущую версию можно сохранить, и при одновременном чтении и записи не возникнет несоответствий.
  3. Гарантированная согласованность данных: InnoDB Использование механизма хранения undo log метод, который может гарантировать, что когда MySQL Сервис в Исключения во время эксплуатации не вносят несоответствий в существующие.

"Принцип отмены журнала:"

  1. в исполнении SQL Перед заявлением InnoDB Механизм хранения откроет дела для этого оператора и создаст отмену для каждой операции изменения. запись журнала.
  2. для DML-операции (INSERT, UPDATE, DELETE) и данные операции определения (DDL ВЫБРАТЬ и т. д.), InnoDB существованиедела будет создано перед запуском undo log Запишите, запишите первичный ключ, номер страницы, старое значение, новое значение и другую информацию, а также сохраните соответствие между существующей и таблицей данных. undo segment середина.
  3. Когда происходит операция отмены, InnoDB встречапроходить undo log Используйте записанные операции для отката отправленных операций модификации.
  4. InnoDB Будет для каждого сегмента данных из undo log Создайте очередь на переработку,Освободите связанные ресурсы после завершения переработки.,Предотвратить большое накопление данныхиз.

Краткое описание роли журналов MySQL

  1. «Обеспечить целостность и согласованность данных» MySQL использует «повторить log”и“undo log», чтобы обеспечить работу данных по характеристикам ACID.
  2. «Резервное копирование и восстановление данных» MySQL использует binlog как один из наиболее важных для Документа. MySQL Все операции модификации, выполняемые уровнем сервера. Когда MySQL Когда сервер не работает из-за сбоя или возникает ошибка данных, вы можете использовать Двойственный журнал осуществляет восстановление данных.
  3. «Открывать и решать проблемы» MySQL Слой сервера в различных вариантах (например, Slow query log,Error Журнал) и InnoDBбаза. движок данных бревно (например. redo log) можно использовать для диагностики системных проблем или проблем с качеством.
  4. «Анализ производительности и оптимизация» проходитьдоступбревно、Журнал запросови медленно Журнал запросы и кратко, может анализировать и оптимизировать MySQL на основе изданных записей Производительность сервера.
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose