Spec-Zone.ru › MySQL 8.4

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

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

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

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

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

    Журналирование на основе строк является методом по умолчанию.

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

Кластер NDB. По умолчанию формат двоичного журналирования в MySQL NDB Cluster 8.4 — 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.7 «Двоичное журналирование хранимых программ».

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

Spec-Zone.ru

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