7.4.4.1 Форматы двоичного протоколирования
Сервер использует несколько форматов протоколирования для записи информации в двоичный журнал:
Возможности репликации в MySQL первоначально основывались на распространении SQL-запросов от источника к реплике. Это называется протоколированием на основе операторов. Вы можете заставить использовать этот формат, запустив сервер с
--binlog-format=STATEMENT.В протоколировании на основе строк (по умолчанию) источник записывает события в двоичный журнал, которые указывают, как влияют изменения на отдельные строки таблиц. Вы можете заставить сервер использовать протоколирование на основе строк, запустив его с
--binlog-format=ROW.Также доступен третий вариант: смешанное протоколирование. При смешанном протоколировании протоколирование на основе операторов используется по умолчанию, но режим протоколирования автоматически переключается на протоколирование на основе строк в определенных случаях, как описано ниже. Вы можете явно заставить MySQL использовать смешанное протоколирование, запустив mysqld с опцией
--binlog-format=MIXED.
Формат протоколирования также может быть установлен или ограничен используемым хранилищем данных. Это помогает устранить проблемы при репликации определенных операторов между источником и репликой, использующими разные хранилища данных.
При репликации на основе операторов могут возникнуть проблемы с реплицированием недетерминированных операторов. При определении того, является ли данный оператор безопасным для репликации на основе операторов, MySQL определяет, может ли он гарантировать, что оператор может быть реплицирован с помощью протоколирования на основе операторов. Если MySQL не может гарантировать это, он помечает оператор как потенциально небезопасный и выдает предупреждение Оператор может быть небезопасным для протоколирования в формате операторов.
Вы можете избежать этих проблем, используя репликацию MySQL на основе строк.
© 2025 Oracle
Licensed under the GPLv2 License.