Spec-Zone.ru › MySQL 9.2

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-9.2-en/replication-asynchronous-connection-failover-source.html

Spec-Zone.ru

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