Spec-Zone.ru › MySQL 5.7

16.1.6 Опции и переменные репликации и двоичного журналирования

  • 16.1.6.1 Справочник по опциям и переменным репликации и двоичного журналирования
  • 16.1.6.2 Опции и переменные источника репликации
  • 16.1.6.3 Опции и переменные сервера-реплики
  • 16.1.6.4 Опции и переменные двоичного журналирования
  • 16.1.6.5 Переменные системы глобальных идентификаторов транзакций

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

Особое значение имеет системная переменная server_id.

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

Эта переменная задает идентификатор сервера. В MySQL 5.7, server_id необходимо задать, если включено двоичное журналирование, в противном случае сервер не сможет запуститься.

server_id устанавливается по умолчанию в 0. На сервере источнике репликации и каждой реплике, вы обязаны указать server_id для определения уникального идентификатора репликации в диапазоне от 1 до 232 − 1. «Уникальный» означает, что каждый идентификатор должен отличаться от любого другого идентификатора, используемого любым другим источником или репликой в топологии репликации. Дополнительную информацию см. в разделе 16.1.6.2 «Опции и переменные источника репликации» и разделе 16.1.6.3 «Опции и переменные сервера-реплики».

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

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

server_uuid

В MySQL 5.7 сервер генерирует настоящий UUID в дополнение к значению server_id, предоставленному пользователем. Это доступно как глобальная, только для чтения, системная переменная server_uuid.

Примечание

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

  • Нет источника, имеющего ожидаемый server_uuid.

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

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

Spec-Zone.ru

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