Spec-Zone .ru
спецификации, руководства, описания, API
|
Сервер использует несколько форматов журналирования, чтобы записать информацию в двоичном журнале. Точный используемый формат зависит от версии используемого MySQL. Есть три формата журналирования:
Возможности репликации в MySQL первоначально были основаны на распространении
SQL-операторов от ведущего устройства к ведомому устройству. Это вызывают основанным
на операторе журналированием. Можно заставить этот формат использоваться, запуская
сервер с --binlog-format=STATEMENT
.
В основанном на строке журналировании
ведущее устройство пишет события в двоичный журнал, которые указывают, как влияют на отдельные строки
таблицы. Можно заставить сервер использовать основанное на строке журналирование, запуская это с --binlog-format=ROW
.
Третья опция также доступна: смешанное
журналирование. Со смешанным журналированием основанное на операторе журналирование
используется по умолчанию, но режим журналирования переключается автоматически на основанный на строке в
определенных случаях как описано ниже. Можно заставить MySQL использовать смешанное журналирование явно,
запускаясь mysqld с опцией --binlog-format=MIXED
.
В MySQL 5.7 двоичный файл значения по умолчанию, регистрирующий формат, STATEMENT
.
Формат журналирования может также быть установлен или ограничен используемым механизмом хранения. Это помогает устранить проблемы, тиражируя определенные операторы между ведущим устройством и ведомым устройством, которые используют различные механизмы хранения.
С основанной на операторе репликацией могут быть проблемы с тиражированием недетерминированных операторов. В решении, безопасен ли данный оператор для основанной на операторе репликации, MySQL определяет, может ли это гарантировать, что оператор может быть тиражирован, используя основанное на операторе журналирование. Если MySQL не может сделать эту гарантию, он отмечает оператор как потенциально ненадежный и выпускает предупреждение, Оператор, возможно, не безопасен войти в систему формат оператора.
Можно избежать этих проблем при использовании построчной репликации MySQL вместо этого.