Spec-Zone.ru › MySQL 5.7

16.2.1 Форматы репликации

  • 16.2.1.1 Преимущества и недостатки репликации на основе инструкций и на основе строк
  • 16.2.1.2 Использование журналирования и репликации на основе строк
  • 16.2.1.3 Определение безопасных и небезопасных инструкций в двоичном журналировании

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

  • При использовании двоичного журналирования на основе инструкций источник записывает SQL-инструкции в двоичный журнал. Репликация источника на реплику выполняется путем выполнения SQL-инструкций на реплике. Это называется репликацией на основе инструкций (которое может быть сокращено как SBR), что соответствует формату двоичного журналирования MySQL на основе инструкций.

  • При использовании журналирования на основе строк источник записывает события в двоичный журнал, которые указывают, как изменяются отдельные строки таблиц. Репликация источника на реплику выполняется путем копирования событий, представляющих изменения в строках таблицы, на реплику. Это называется репликацией на основе строк (сокращенно RBR).

  • Вы также можете настроить MySQL для использования смешанного журналирования на основе инструкций и строк, в зависимости от того, какой формат лучше подходит для изменения, которое необходимо записать. Это называется смешанным журналированием. При использовании смешанного журналирования по умолчанию используется журнал на основе инструкций. В зависимости от определенных инструкций, а также используемого движка хранения, журнал автоматически переключается на репликацию на основе строк в определенных случаях. Репликация, использующая смешанный формат, называется репликацией на основе смешанного формата или репликацией смешанного формата. Дополнительную информацию см. в разделе 5.4.4.3, «Смешанный формат двоичного журналирования».

До MySQL 5.7.7 формат на основе инструкций был по умолчанию. В MySQL 5.7.7 и более поздних версиях формат на основе строк является по умолчанию.

Кластер NDB. По умолчанию формат двоичного журналирования в MySQL NDB Cluster 7.5 — MIXED. Обратите внимание, что репликация NDB Cluster всегда использует репликацию на основе строк, и что движок хранения NDB несовместим с репликацией на основе инструкций. Дополнительную информацию см. в разделе 21.7.2, «Общие требования к репликации NDB Cluster».

При использовании MIXED формата формат двоичного журналирования определяется, в том числе, используемым движком хранения и выполняемой инструкцией. Дополнительную информацию о смешанном журналировании и правилах, регулирующих поддержку различных форматов журналирования, см. в разделе 5.4.4.3, «Смешанный формат двоичного журналирования».

Формат журналирования в работающем сервере MySQL управляется настройкой системной переменной сервера binlog_format. Эту переменную можно задать на уровне сеанса или глобально. Правила, регулирующие, когда и как вступает в силу новая настройка, такие же, как и для других системных переменных сервера MySQL. Установка переменной для текущего сеанса действует только до конца этого сеанса, и изменение не видно другим сеансам. Установка переменной глобально вступает в силу для клиентов, которые подключаются после изменения, но не для любых текущих сеансов клиентов, включая сеанс, где была изменена настройка переменной. Чтобы сделать настройку глобальной системной переменной постоянной, чтобы она применялась при каждом перезапуске сервера, необходимо задать её в файле настроек. Дополнительную информацию см. в разделе 13.7.4.1, «Синтаксис SET для присваивания переменных».

Существуют условия, при которых вы не можете изменить формат двоичного журналирования во время выполнения или при этом происходит сбой репликации. См. раздел 5.4.4.2, «Настройка формата двоичного журнала».

Изменение значения глобальной переменной binlog_format требует привилегий, достаточных для установки глобальных системных переменных. Изменение значения сеансовой переменной binlog_format требует привилегий, достаточных для установки ограниченных сеансовых системных переменных. См. раздел 5.1.8.1, «Привилегии на системные переменные».

Форматы репликации на основе инструкций и на основе строк имеют разные проблемы и ограничения. Сравнение их относительных преимуществ и недостатков см. в разделе 16.2.1.1, «Преимущества и недостатки репликации на основе инструкций и на основе строк».

При репликации на основе инструкций могут возникнуть проблемы с репликацией хранимых процедур или триггеров. Вы можете избежать этих проблем, используя репликацию на основе строк. Дополнительную информацию см. в разделе 23.7, «Двоичное журналирование хранимых программ».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/replication-formats.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API