19.2.1 Форматы репликации
Репликация работает, потому что события, записанные в двоичный журнал, считываются со источника и затем обрабатываются на реплике. События записываются в двоичный журнал в различных форматах в зависимости от типа события. Разные форматы репликации соответствуют формату двоичного журнала, используемому при записи событий в двоичный журнал источника. Связь между форматами двоичного журнала и терминами, используемыми во время репликации, следующая:
При использовании двоичного журнала на основе инструкций источник записывает SQL-инструкции в двоичный журнал. Репликация источника на реплику работает путем выполнения SQL-инструкций на реплике. Это называется репликацией на основе инструкций (которую можно сократить до SBR), что соответствует формату двоичного журнала MySQL на основе инструкций.
-
При использовании журналирования на основе строк источник записывает события в двоичный журнал, которые указывают, как изменяются отдельные строки таблицы. Репликация источника на реплику работает путем копирования событий, представляющих изменения в строках таблиц, на реплику. Это называется репликацией на основе строк (которую можно сократить до RBR).
Журналирование на основе строк является методом по умолчанию.
Вы также можете настроить MySQL для использования смешанного формата журнала, основанного на инструкциях и строках, в зависимости от того, что больше подходит для изменения, которое нужно записать в журнал. Это называется журналированием смешанного формата. При использовании смешанного формата журнала используется журнал на основе инструкций по умолчанию. В зависимости от определенных инструкций, а также используемого движка хранения, журнал автоматически переключается на журналирование на основе строк в особых случаях. Репликация, использующая смешанный формат, называется репликацией смешанного формата. Дополнительную информацию см. в Разделе 7.4.4.3, «Формат смешанного двоичного журнала».
Кластер NDB. По умолчанию формат двоичного журнала в MySQL NDB Cluster 9.2 — ROW. Репликация NDB Cluster использует репликацию на основе строк; хранилище NDB несовместимо с репликацией на основе инструкций. Дополнительную информацию см. в Разделе 25.7.2, «Общие требования к репликации NDB Cluster».
При использовании формата MIXED формат двоичного журнала частично определяется используемым движком хранения и выполняемой инструкцией. Дополнительную информацию о журналировании смешанного формата и правилах, регулирующих поддержку различных форматов журналирования, см. в Разделе 7.4.4.3, «Формат смешанного двоичного журнала».
Формат журналирования в работающем сервере MySQL управляется установкой системной переменной сервера binlog_format. Эта переменная может быть установлена в сеансовом или глобальном контексте. Правила, регулирующие время и способ вступления новой настройки в силу, такие же, как и для других системных переменных сервера MySQL. Установка переменной для текущего сеанса действует только до конца этого сеанса, и изменение не отображается другим сеансам. Глобальная установка переменной вступает в силу для клиентов, подключающихся после изменения, но не для текущих сеансов клиентов, включая сеанс, в котором была изменена переменная. Чтобы сделать глобальную настройку системной переменной постоянной, чтобы она применялась при перезапуске сервера, необходимо установить её в файле параметров. Дополнительную информацию см. в Разделе 15.7.6.1, «Синтаксис SET для задания переменных».
Существуют условия, при которых вы не можете изменить формат двоичного журнала во время выполнения или это приводит к сбою репликации. См. Раздел 7.4.4.2, «Установка формата двоичного журнала».
Для изменения глобального значения binlog_format требуется доступ, достаточный для установки глобальных системных переменных. Для изменения значения сеансовой переменной binlog_format требуется доступ, достаточный для установки ограниченных сеансовых системных переменных. См. Раздел 7.1.9.1, «Права на системные переменные».
Изменение формата двоичного журнала (binlog_format системная переменная) устарело в MySQL 8.0; в будущей версии MySQL ожидается, что binlog_format будет полностью удалено, а формат на основе строк станет единственным форматом журналирования, используемым MySQL.
Форматы репликации на основе инструкций и строк имеют различные проблемы и ограничения. Сравнение их преимуществ и недостатков см. в Разделе 19.2.1.1, «Преимущества и недостатки репликации на основе инструкций и строк».
При репликации на основе инструкций могут возникнуть проблемы с репликацией хранимых процедур или триггеров. Вы можете избежать этих проблем, используя репликацию на основе строк. Дополнительную информацию см. в Разделе 27.8, «Журналирование хранимых процедур».
© 2025 Oracle
Licensed under the GPLv2 License.