Spec-Zone.ru › MySQL 8.4

20.5.4.1 Подключения для распределенного восстановления

  • 20.5.4.1.1 Выбор адресов для конечных точек распределенного восстановления
  • 20.5.4.1.2 Сжатие для распределенного восстановления
  • 20.5.4.1.3 Пользователь репликации для распределенного восстановления
  • 20.5.4.1.4 SSL и аутентификация для распределенного восстановления

Когда присоединяющийся член подключается к онлайн-члену для передачи состояния во время распределенного восстановления, присоединяющийся член действует как клиент в подключении, а существующий член — как сервер. Когда передача состояния из двоичного журнала донора происходит по этому подключению (используя асинхронный канал репликации group_replication_recovery), присоединяющийся член действует как реплика, а существующий член — как источник. Когда по этому подключению происходит удаленная операция клонирования, присоединяющийся член действует как получатель, а существующий член — как донор. Настройки конфигурации, применимые к этим ролям вне контекста Group Replication, также могут применяться к Group Replication, если они не переопределены специфической для Group Replication настройкой или поведением.

Подключение, которое существующий член предоставляет присоединяющемуся члену для распределенного восстановления, не является тем же подключением, которое используется Group Replication для связи между онлайн-членами группы.

  • Подключение, используемое движком групповой связи для Group Replication (XCom, вариант Paxos) для TCP-связи между удаленными экземплярами XCom, задается системной переменной group_replication_local_address. Это подключение используется для TCP/IP-сообщений между онлайн-членами. Связь с локальным экземпляром осуществляется по входному каналу с использованием общей памяти.

  • Для распределенного восстановления по умолчанию члены группы предлагают своему присоединяющемуся члену стандартное подключение SQL-клиента, как задано переменными hostname и port. Если альтернативный номер порта задан переменной report_port, используется он.

  • Члены группы могут вместо этого рекламировать альтернативный список конечных точек распределенного восстановления в качестве выделенных подключений клиентов для присоединяющихся членов, позволяя управлять трафиком распределенного восстановления отдельно от подключений обычных клиентов члена. Член передает список конечных точек распределенного восстановления, заданных group_replication_advertise_recovery_endpoints, в группу при присоединении. По умолчанию член продолжает предлагать стандартное подключение SQL-клиента, как в предыдущих версиях.

Важно

Распределенное восстановление может завершиться неудачей, если присоединяющийся член не может правильно идентифицировать других членов, используя имя хоста, как определено системной переменной MySQL Server hostname. Рекомендуется, чтобы операционные системы, на которых работает MySQL, имели правильно сконфигурированное уникальное имя хоста, либо используя DNS, либо локальные настройки. Имя хоста, используемое сервером для подключений SQL-клиентов, можно проверить в столбце Member_host таблицы Performance Schema replication_group_members. Если несколько членов группы экспортируют имя хоста по умолчанию, заданное операционной системой, существует вероятность того, что присоединяющийся член не сможет разрешить его до правильного адреса члена и не сможет подключиться для распределенного восстановления. В этой ситуации можно использовать системную переменную MySQL Server report_host для настройки уникального имени хоста, которое будет экспортировано каждым из серверов.

Шаги для присоединяющегося члена для установления подключения для распределенного восстановления следующие:

  1. При присоединении члена к группе он подключается к одному из seed-членов, включённых в список в системной переменной group_replication_group_seeds, первоначально используя подключение group_replication_local_address, как указано в этом списке. Seed-члены могут быть подмножеством группы.

  2. По этому подключению seed-член использует сервис членства Group Replication, чтобы предоставить присоединяющемуся члену список всех онлайн-членов в группе в виде представления. Информация о членстве включает подробности о конечных точках распределенного восстановления или стандартном подключении SQL-клиента, предлагаемых каждым членом для распределенного восстановления.

  3. Присоединяющийся член выбирает подходящего члена группы в качестве донора для распределенного восстановления, следуя правилам, описанным в разделе 20.5.4.4 «Устойчивость к ошибкам при распределенном восстановлении».

  4. Затем присоединяющийся член пытается подключиться к донору, используя указанные донором конечные точки распределенного восстановления, пробуя каждый по очереди в указанном порядке. Если донор не предоставляет конечных точек, присоединяющийся член пытается подключиться используя стандартное подключение SQL-клиента донора. Требования к SSL для подключения указаны в опциях group_replication_recovery_ssl_*, описанных в разделе 20.5.4.1.4 «SSL и аутентификация для распределенного восстановления».

  5. Если присоединяющийся член не может подключиться к выбранному донору, он повторяет попытку с другими подходящими донорами, следуя правилам, описанным в разделе 20.5.4.4 «Устойчивость к ошибкам при распределенном восстановлении». Обратите внимание, что если присоединяющийся член исчерпал список опубликованных конечных точек без установления подключения, он не возвращается к стандартному подключению SQL-клиента донора, а переключается на другого донора.

  6. Когда присоединяющийся член устанавливает подключение для распределенного восстановления с донором, он использует это подключение для передачи состояния, как описано в разделе 20.5.4 «Распределенное восстановление». Хост и порт для подключения отображаются в журнале присоединяющегося члена. Обратите внимание, что если используется операция удаленного клонирования, когда присоединяющийся член перезапускается в конце операции, он устанавливает подключение с новым донором для передачи состояния из двоичного журнала. Это может быть подключение к другому члену, отличного от первоначального донора, используемого для удаленной операции клонирования, или это может быть другое подключение к первоначальному донору. В любом случае, процесс распределенного восстановления продолжается так же, как и с первоначальным донором.

20.5.4.1.1 Выбор адресов для конечных точек распределённого восстановления

IP-адреса, предоставленные переменной системы group_replication_advertise_recovery_endpoints в качестве конечных точек распределённого восстановления, не обязательно должны быть сконфигурированы для MySQL Server (то есть, они не должны быть указаны переменной системы admin_address или в списке для переменной системы bind_address). Они должны быть назначены серверу. Все имена хостов должны разрешаться до локального IP-адреса. Можно использовать IPv4 и IPv6 адреса.

Порты, предоставленные для конечных точек распределённого восстановления, должны быть сконфигурированы для MySQL Server, поэтому они должны быть указаны переменной системы port, report_port или admin_port. Сервер должен принимать TCP/IP-соединения на этих портах. Если вы указываете admin_port, пользователю репликации для распределённого восстановления необходимо привилегия SERVICE_CONNECTION_ADMIN для подключения. Выбор admin_port позволяет держать соединения распределённого восстановления отдельными от обычных соединений MySQL-клиентов.

Соединяющиеся члены пробуют каждую из конечных точек по очереди в порядке их указания в списке. Если group_replication_advertise_recovery_endpoints установлено на DEFAULT вместо списка конечных точек, предлагается стандартное SQL-соединение клиента. Обратите внимание, что стандартное SQL-соединение клиента не включается автоматически в список конечных точек распределённого восстановления и не предлагается как резервный вариант, если список конечных точек донора исчерпан без подключения. Если вы хотите предложить стандартное SQL-соединение клиента как одну из конечных точек распределённого восстановления, вы должны явно включить его в список, указанный в group_replication_advertise_recovery_endpoints. Вы можете поместить его в последнее место, чтобы он действовал как крайняя мера для подключения.

Конечные точки распределённого восстановления члена группы (или стандартное SQL-соединение клиента, если конечные точки не указаны) не нужно добавлять в список разрешённых адресов для Групповой репликации, указанный переменной системы group_replication_ip_allowlist. Список разрешённых адресов предназначен только для адреса, указанного в group_replication_local_address для каждого члена. Подключающийся член должен иметь разрешение на начальное подключение к группе в соответствии со списком разрешённых адресов для получения адреса или адресов распределённого восстановления.

Конечные точки распределённого восстановления, которые вы перечисляете, проверяются при установке переменной системы и при выполнении инструкции START GROUP_REPLICATION. Если список не может быть правильно проанализирован или если к любой из конечных точек на хосте невозможно получить доступ, потому что сервер не прослушивает их, Групповая репликация регистрирует ошибку и не запускается.

20.5.4.1.2 Сжатие для распределённого восстановления

Вы можете дополнительно сконфигурировать сжатие для распределённого восстановления путём передачи состояния из бинарного журнала донора. Сжатие может быть полезно для распределённого восстановления, где пропускная способность сети ограничена, а донору нужно передать много транзакций соединяющемуся члену. Переменные системы group_replication_recovery_compression_algorithms и group_replication_recovery_zstd_compression_level определяют разрешённые алгоритмы сжатия, а zstd уровень сжатия используется при выполнении передачи состояния из бинарного журнала донора. Более подробную информацию см. в разделе 6.2.8, «Управление сжатием соединений».

Эти настройки сжатия не применяются к операциям удалённого клонирования. При использовании операции удалённого клонирования для распределённого восстановления применяется настройка плагина клонирования для clone_enable_compression.

20.5.4.1.3 Пользователь репликации для распределённого восстановления

Распределённое восстановление требует пользователя репликации с соответствующими правами, чтобы Групповая репликация могла установить прямые каналы репликации между членами. Пользователь репликации также должен иметь соответствующие права, чтобы действовать в качестве пользователя клонирования на доноре для операции удалённого клонирования. Один и тот же пользователь репликации должен использоваться для распределённого восстановления на каждом члене группы. Инструкции по настройке этого пользователя репликации см. в разделе 20.2.1.3, «Учётные данные пользователя для распределённого восстановления». Инструкции по защите учётных данных пользователя репликации см. в разделе 20.6.3.1, «Защита учётных данных пользователя для распределённого восстановления».

20.5.4.1.4 SSL и аутентификация для распределённого восстановления

SSL для распределённого восстановления настраивается отдельно от SSL для обычной групповой связи, которая определяется настройками SSL сервера и переменной системы group_replication_ssl_mode. Для подключений распределённого восстановления доступны специализированные переменные системы SSL распределённого восстановления Групповой репликации для настройки использования сертификатов и шифров, предназначенных конкретно для распределённого восстановления.

По умолчанию SSL не используется для подключений распределённого восстановления. Чтобы активировать его, установите group_replication_recovery_use_ssl=ON и настройте переменные системы SSL распределённого восстановления Групповой репликации, как описано в разделе 20.6.3, «Защита подключений распределённого восстановления». Вам нужен пользователь репликации, настроенный для использования SSL.

Когда распределённое восстановление настроено на использование SSL, Групповая репликация применяет эту настройку для операций удалённого клонирования, а также для передачи состояния из бинарного журнала донора. Групповая репликация автоматически настраивает параметры для параметров SSL клонирования (clone_ssl_ca, clone_ssl_cert и clone_ssl_key), чтобы они соответствовали вашим настройкам для соответствующих параметров распределённого восстановления Групповой репликации (group_replication_recovery_ssl_ca, group_replication_recovery_ssl_cert и group_replication_recovery_ssl_key).

Если вы не используете SSL для распределённого восстановления (то есть, group_replication_recovery_use_ssl установлено на OFF), и учётная запись пользователя репликации для Групповой репликации аутентифицируется с плагином caching_sha2_password (по умолчанию) или плагином sha256_password (устаревший), для обмена паролями используются пары RSA-ключей. В этом случае используйте переменную системы group_replication_recovery_public_key_path для указания файла открытого RSA-ключа или переменную системы group_replication_recovery_get_public_key для запроса открытого ключа у источника, как описано в разделе 20.6.3.1.1, «Пользователь репликации с плагином аутентификации кэширования SHA-2».

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

Spec-Zone.ru

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