Spec-Zone.ru › MySQL 8.4

19.4.9.1 Переключение источника при асинхронном отключении соединения

Для активации переключения источника при асинхронном отключении соединения для канала репликации установите значение SOURCE_CONNECTION_AUTO_FAILOVER=1 в операторе CHANGE REPLICATION SOURCE TO для данного канала. Для канала должна быть включена автоматическая позиционирование по GTID (SOURCE_AUTO_POSITION = 1).

Важно

При отказе соединения с источником реплики, реплика сначала повторно пытается подключиться к тому же источнику столько раз, сколько указано опцией SOURCE_RETRY_COUNT оператора CHANGE REPLICATION SOURCE TO. Интервал между попытками устанавливается опцией SOURCE_CONNECT_RETRY. Когда эти попытки исчерпаны, срабатывает механизм асинхронного переключения источника. Обратите внимание, что значения по умолчанию для этих опций, разработанных для подключения к одному источнику, заставляют реплику повторно пытаться подключиться к тому же источнику в течение 60 дней. Чтобы обеспечить своевременное срабатывание механизма асинхронного переключения источника, установите SOURCE_RETRY_COUNT и SOURCE_CONNECT_RETRY на минимальные значения, которые позволяют только несколько повторных попыток подключения к одному источнику, если отказ в подключении вызван временным нарушением сети. Подходящими значениями являются SOURCE_RETRY_COUNT=3 и SOURCE_CONNECT_RETRY=10, которые заставляют реплику повторить попытку подключения 3 раза с интервалом 10 секунд между ними.

Также необходимо установить список источников для канала репликации, чтобы указать доступные источники для переключения. Список источников задаётся и управляется с помощью функций asynchronous_connection_failover_add_source и asynchronous_connection_failover_delete_source для добавления и удаления отдельных серверов источников репликации. Для добавления и удаления управляемых групп серверов используйте функции asynchronous_connection_failover_add_managed и asynchronous_connection_failover_delete_managed соответственно.

В названиях функций указан соответствующий канал репликации и указаны имя хоста, номер порта, сетевое пространство и весовый приоритет (от 1 до 100, где 100 — наивысший приоритет) экземпляра MySQL для добавления или удаления из списка источников канала. Для управляемой группы также указывается тип управляемой службы (в настоящее время доступна только Group Replication) и идентификатор управляемой группы (для Group Replication это значение системной переменной group_replication_group_name). При добавлении управляемой группы нужно добавить только одного члена группы, остальные члены из текущего членства в группе добавляются автоматически. При удалении управляемой группы удаляется вся группа целиком.

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

При переключении соединения выбирается источник с наивысшим приоритетом (весом) среди альтернативных источников, перечисленных в списке источников для канала, для первой попытки подключения. Реплика сначала проверяет, может ли она подключиться к серверу-источнику, или, в случае управляемой группы, что сервер-источник имеет статус ONLINE в группе (не RECOVERING или недоступен). Если источник с наивысшим весом недоступен, реплика пытается подключиться ко всем перечисленным источникам в порядке убывания веса, затем снова начинает с источника с наивысшим весом. Если несколько источников имеют одинаковый вес, реплика упорядочивает их случайным образом. Если реплике необходимо начать проход по списку заново, она включает и повторно пытается подключиться к источнику, с которым произошел первоначальный сбой подключения.

Списки источников хранятся в таблицах mysql.replication_asynchronous_connection_failover и mysql.replication_asynchronous_connection_failover_managed и могут быть просмотрены в схеме производительности в таблицах replication_asynchronous_connection_failover и replication_asynchronous_connection_failover_managed. Реплика использует мониторинговую нить для отслеживания членства в управляемых группах и обновления списка источников (thread/sql/replica_monitor). Параметр SOURCE_CONNECTION_AUTO_FAILOVER оператора CHANGE REPLICATION SOURCE TO, и список источников, передаются клону реплики во время удалённого клонирования.

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

Spec-Zone.ru

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