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 «Настройка конфигурации реплики».
Сервер MySQL генерирует UUID помимо идентификатора сервера по умолчанию или заданного пользователем, который устанавливается в системной переменной server_id. Он доступен как глобальная, только для чтения переменная server_uuid.
Наличие системной переменной server_uuid не меняет требования к установке уникального значения server_id для каждого сервера MySQL при подготовке и запуске репликации MySQL, как описано ранее в этом разделе.
| Системная переменная | server_uuid |
|---|---|
| Область действия | Глобальная |
| Динамическая | Нет |
SET_VAR Применимо | Нет |
| Тип | Строка |
При запуске сервер MySQL автоматически получает UUID следующим образом:
Попытка прочитать и использовать UUID, записанный в файле
(гдеdata_dir/auto.cnfdata_dir— каталог данных сервера).Если
не найден, сгенерировать новый UUID и сохранить его в этом файле, создав файл при необходимости.data_dir/auto.cnf
Файл 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.