Spec-Zone.ru › MySQL 9.2

19.1.6 Параметры и переменные репликации и двоичного протоколирования

  • 19.1.6.1 Справочник по параметрам и переменным репликации и двоичного протоколирования
  • 19.1.6.2 Параметры и переменные источника репликации
  • 19.1.6.3 Параметры и переменные сервера-реплики
  • 19.1.6.4 Параметры и переменные двоичного протоколирования
  • 19.1.6.5 Переменные системы глобальных идентификаторов транзакций

В следующих разделах содержится информация о параметрах и переменных сервера mysqld, используемых в репликации и для управления двоичным журналом. Параметры и переменные для использования на источниках и репликах рассматриваются отдельно, как и параметры и переменные, относящиеся к двоичному протоколированию и глобальным идентификаторам транзакций (GTID). Также включена таблица быстрого доступа к основным сведениям о параметрах и переменных.

Особо важным является системная переменная server_id.

Формат командной строки --server-id=#
Системная переменная server_id
Область действия Глобальная
Динамическая Да
SET_VAR Применимо Нет
Тип Целое число
Значение по умолчанию 1
Минимальное значение 0
Максимальное значение 4294967295

Эта переменная задаёт идентификатор сервера. server_id по умолчанию установлено в 1. Сервер можно запустить с этим значением по умолчанию, но при включённом двоичном протоколировании выводится информационное сообщение, если вы не установили server_id явно, чтобы указать идентификатор сервера.

Для серверов, используемых в топологии репликации, необходимо указать уникальный идентификатор сервера для каждого сервера репликации в диапазоне от 1 до 232 − 1. «Уникальность» означает, что каждый идентификатор должен отличаться от любого другого идентификатора, используемого другим источником или репликой в топологии репликации. Дополнительная информация приведена в разделе 19.1.6.2 «Параметры и переменные источника репликации» и разделе 19.1.6.3 «Параметры и переменные сервера-реплики».

Если идентификатор сервера установлен в 0, двоичное протоколирование выполняется, но источник с идентификатором сервера 0 отклоняет любые подключения от реплик, а реплика с идентификатором сервера 0 отклоняет подключение к источнику. Обратите внимание, что хотя вы можете динамически изменить идентификатор сервера на ненулевое значение, это не приводит к немедленному запуску репликации. Вам необходимо изменить идентификатор сервера и затем перезапустить сервер для инициализации реплики.

Дополнительную информацию см. в разделе 19.1.2.2 «Настройка конфигурации реплики».

server_uuid

Сервер MySQL генерирует UUID помимо идентификатора сервера по умолчанию или заданного пользователем, который устанавливается в системной переменной server_id. Он доступен как глобальная, только для чтения переменная server_uuid.

Примечание

Наличие системной переменной server_uuid не меняет требования к установке уникального значения server_id для каждого сервера MySQL при подготовке и запуске репликации MySQL, как описано ранее в этом разделе.

Системная переменная server_uuid
Область действия Глобальная
Динамическая Нет
SET_VAR Применимо Нет
Тип Строка

При запуске сервер MySQL автоматически получает UUID следующим образом:

  1. Попытка прочитать и использовать UUID, записанный в файле data_dir/auto.cnf (где data_dir — каталог данных сервера).

  2. Если data_dir/auto.cnf не найден, сгенерировать новый UUID и сохранить его в этом файле, создав файл при необходимости.

Файл auto.cnf имеет формат, аналогичный формату файлов my.cnf или my.ini. Файл auto.cnf содержит только один раздел [auto] с одной настройкой и значением server_uuid; содержимое файла аналогично показанному здесь:

[auto]
server_uuid=8a94f357-aab4-11df-86ab-c80aa9429562
Важно

Файл auto.cnf генерируется автоматически; не пытайтесь писать в него или изменять его.

При использовании репликации MySQL источники и реплики знают UUID друг друга. Значение UUID реплики можно увидеть в выводе SHOW REPLICAS. После выполнения START REPLICA значение UUID источника доступно на реплике в выводе SHOW REPLICA STATUS.

Примечание

Выполнение инструкции STOP REPLICA или RESET REPLICA не сбрасывает UUID источника, используемый на реплике.

server_uuid сервера также используется в GTID для транзакций, исходящих с этого сервера. Дополнительную информацию см. в разделе 19.1.3 «Репликация с глобальными идентификаторами транзакций».

При запуске поток ввода/вывода репликации (приёмник) генерирует ошибку и прерывается, если UUID его источника совпадает с его собственным, если не установлен параметр --replicate-same-server-id. Кроме того, поток приёмника репликации генерирует предупреждение, если выполняется одно из следующих условий:

  • Не существует источника с ожидаемым server_uuid.

  • Значение server_uuid источника изменилось, хотя ни одна команда CHANGE REPLICATION SOURCE TO не выполнялась.

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

Spec-Zone.ru

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