Spec-Zone.ru › MySQL 5.7

21.7.2 Общие требования к репликации NDB Cluster

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

Репликация NDB Cluster, как описано в этом разделе и следующих, зависит от репликации на основе строк. Это означает, что сервер MySQL, являющийся источником репликации, должен работать с --binlog-format=ROW или --binlog-format=MIXED, как описано в разделе 21.7.6 «Запуск репликации NDB Cluster (один канал репликации)». Дополнительную информацию о репликации на основе строк см. в разделе 16.2.1 «Форматы репликации».

Важно

Если вы попытаетесь использовать репликацию NDB Cluster с --binlog-format=STATEMENT, репликация не будет работать должным образом, потому что таблица ndb_binlog_index на кластере-источнике и столбец epoch таблицы ndb_apply_status на кластере-реплике не обновляются (см. раздел 21.7.4 «Схема и таблицы репликации NDB Cluster»). Вместо этого обновления на сервере MySQL, действующем как источник репликации, распространяются на реплику, и никакие обновления от других SQL-узлов в кластере-источнике не реплицируются.

Значение по умолчанию для параметра --binlog-format равно MIXED.

Каждый сервер MySQL, используемый для репликации в любом кластере, должен быть уникально идентифицирован среди всех серверов MySQL репликации, участвующих в любом из кластеров (вы не можете иметь серверы репликации как в кластере-источнике, так и в кластере-реплике с одинаковым идентификатором). Это можно сделать, запустив каждый SQL-узел с параметром --server-id=id, где id — уникальное целое число. Хотя это не строго необходимо, для целей данного обсуждения мы предполагаем, что все двоичные файлы NDB Cluster имеют одинаковую версию выпуска.

В целом для MySQL Replication оба сервера MySQL (mysqld процессы) должны быть совместимы друг с другом по версии используемого протокола репликации и набора функций SQL, которые они поддерживают (см. раздел 16.4.2 «Совместимость репликации между версиями MySQL»). Именно из-за таких различий между двоичными файлами в дистрибутивах NDB Cluster и MySQL Server 5.7, репликация NDB Cluster имеет дополнительное требование, что оба mysqld двоичных файла должны быть из дистрибутива NDB Cluster. Самый простой и легкий способ убедиться в совместимости серверов mysqld — использовать один и тот же дистрибутив NDB Cluster для всех исходных и реплицируемых mysqld двоичных файлов.

Предполагается, что сервер или кластер реплики предназначены только для репликации кластера-источника и что на нем не хранятся другие данные.

Все NDB таблицы, подлежащие репликации, должны быть созданы с помощью сервера и клиента MySQL. Таблицы и другие объекты базы данных, созданные с помощью API NDB (например, ), не видны серверу MySQL и поэтому не реплицируются. Обновления приложений API NDB в существующих таблицах, которые были созданы с помощью сервера MySQL, могут быть реплицированы.

Примечание

Возможна репликация NDB Cluster с использованием репликации на основе операторов. Однако в этом случае действуют следующие ограничения:

  • Все обновления строк данных в кластере-источнике должны быть направлены на один сервер MySQL.

  • Невозможно реплицировать кластер с использованием нескольких одновременных процессов репликации MySQL.

  • Реплицируются только изменения, внесенные на уровне SQL.

Это дополнительно к другим ограничениям репликации на основе операторов по сравнению с репликацией на основе строк; см. раздел 16.2.1.1 «Преимущества и недостатки репликации на основе операторов и строк» для более подробной информации о различиях между двумя форматами репликации.

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

Spec-Zone.ru

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