Spec-Zone.ru › MySQL 9.2

14.18.3 Функции переключения каналов асинхронной репликации при сбоях

Следующие функции позволяют добавлять или удалять серверы источников репликации в список источников для канала репликации, а также очищать список источников для данного сервера.

Таблица 14.27 Функции переключения каналов

Таблица 14.27 Функции переключения каналов
Имя Описание
asynchronous_connection_failover_add_managed() Добавление конфигурации сервера-источника группы в список источников канала репликации
asynchronous_connection_failover_add_source() Добавление конфигурации сервера-источника в список источников канала репликации
asynchronous_connection_failover_delete_managed() Удаление управляемой группы из списка источников канала репликации
asynchronous_connection_failover_delete_source() Удаление сервера-источника из списка источников канала репликации
asynchronous_connection_failover_reset() Удаление всех настроек, относящихся к асинхронному переключению источников групповой репликации

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

Списки источников хранятся в таблицах mysql.replication_asynchronous_connection_failover и mysql.replication_asynchronous_connection_failover_managed и могут быть просмотрены в таблице Схемы производительности replication_asynchronous_connection_failover.

Если канал репликации находится на первичном сервере групповой репликации для группы, где активен перенос между репликами, список источников транслируется всем участникам группы при их присоединении или при обновлении любым способом. Переключение между репликами контролируется действием участника mysql_start_failover_channels_if_primary, которое включено по умолчанию и может быть отключено с помощью функции group_replication_disable_member_action.

  • asynchronous_connection_failover_add_managed()

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

    Синтаксис:

    asynchronous_connection_failover_add_managed(channel, managed_type, managed_name, host, port, network_namespace, primary_weight, secondary_weight)

    Аргументы:

    • channel: Канал репликации, для которого этот сервер источника репликации является частью списка источников.

    • managed_type: Тип управляемой службы, которую механизм асинхронного отключения должен предоставлять для этого сервера. В настоящее время принимается только значение GroupReplication.

    • managed_name: Идентификатор управляемой группы, частью которой является сервер. Для управляемой службы GroupReplication идентификатором является значение системной переменной group_replication_group_name.

    • host: Имя хоста для этого сервера источника репликации.

    • port: Номер порта для этого сервера источника репликации.

    • network_namespace: Пространство имен сети для этого сервера источника репликации. Укажите пустую строку, так как этот параметр зарезервирован для использования в будущем.

    • primary_weight: Приоритет этого сервера источника репликации в списке источников канала репликации, когда он выступает в качестве основного для управляемой группы. Весовой коэффициент — от 1 до 100, где 100 — наивысший. Для основного сервера подходит вес 80. Механизм асинхронного отключения активируется, если текущий подключенный источник не имеет наивысшего веса в группе. Предполагая, что вы настроили управляемую группу, чтобы присвоить больший вес основному и меньший вес второстепенному серверу, при изменении основного сервера его вес увеличивается, и реплика переключает подключение на него.

    • secondary_weight: Приоритет этого сервера источника репликации в списке источников канала репликации, когда он выступает в качестве вторичного в управляемой группе. Весовой коэффициент — от 1 до 100, где 100 — наивысший. Для вторичного сервера подходит вес 60.

    Возвращаемое значение:

    Строка, содержащая результат операции, например, был ли он успешным или нет.

    Пример:

    SELECT asynchronous_connection_failover_add_managed('channel2', 'GroupReplication', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', '127.0.0.1', 3310, '', 80, 60);
    +----------------------------------------------------------------------------------------------------------------------------------------------------+
    | asynchronous_connection_failover_add_source('channel2', 'GroupReplication', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', '127.0.0.1', 3310, '', 80, 60) |
    +----------------------------------------------------------------------------------------------------------------------------------------------------+
    | Source managed configuration details successfully inserted.                                                                                        |
    +----------------------------------------------------------------------------------------------------------------------------------------------------+
    

    Для получения дополнительной информации см. Раздел 19.4.9, «Переключение источников и реплик с помощью асинхронного отключения».

  • asynchronous_connection_failover_add_source()

    Добавить информацию о конфигурации сервера источника репликации в список источников для канала репликации.

    Синтаксис:

    asynchronous_connection_failover_add_source(channel, host, port, network_namespace, weight)

    Аргументы:

    • channel: Канал репликации, для которого этот сервер источника репликации является частью списка источников.

    • host: Имя хоста для этого сервера источника репликации.

    • port: Номер порта для этого сервера источника репликации.

    • network_namespace: Пространство имен сети для этого сервера источника репликации. Укажите пустую строку, так как этот параметр зарезервирован для использования в будущем.

    • weight: Приоритет этого сервера источника репликации в списке источников канала репликации. Приоритет — от 1 до 100, где 100 — наивысший, а 50 — значение по умолчанию. Когда активируется механизм асинхронного отключения, источник с наивысшим приоритетом среди альтернативных источников, указанных в списке источников для канала, выбирается для первой попытки подключения. Если эта попытка не удалась, реплика пробует все указанные источники в порядке убывания приоритета, а затем снова начинает с источника с наивысшим приоритетом. Если несколько источников имеют одинаковый приоритет, реплика упорядочивает их случайным образом. Механизм асинхронного отключения активируется, если текущий подключенный источник не имеет наивысшего веса в группе.

    Возвращаемое значение:

    Строка, содержащая результат операции, например, был ли он успешным или нет.

    Пример:

    SELECT asynchronous_connection_failover_add_source('channel2', '127.0.0.1', 3310, '', 80);
    +-------------------------------------------------------------------------------------------------+
    | asynchronous_connection_failover_add_source('channel2', '127.0.0.1', 3310, '', 80)              |
    +-------------------------------------------------------------------------------------------------+
    | Source configuration details successfully inserted.                                             |
    +-------------------------------------------------------------------------------------------------+
    

    Для получения дополнительной информации см. Раздел 19.4.9, «Переключение источников и реплик с помощью асинхронного отключения».

  • asynchronous_connection_failover_delete_managed()

    Удалить всю управляемую группу из списка источников для канала репликации. При использовании этой функции все серверы источника репликации, определенные в управляемой группе, удаляются из списка источников канала.

    Синтаксис:

    asynchronous_connection_failover_delete_managed(channel, managed_name)

    Аргументы:

    • channel: Канал репликации, для которого этот сервер источника репликации был частью списка источников.

    • managed_name: Идентификатор управляемой группы, частью которой является сервер. Для управляемой службы GroupReplication идентификатором является значение системной переменной group_replication_group_name.

    Возвращаемое значение:

    Строка, содержащая результат операции, например, был ли он успешным или нет.

    Пример:

    SELECT asynchronous_connection_failover_delete_managed('channel2', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa');
    +-----------------------------------------------------------------------------------------------------+
    | asynchronous_connection_failover_delete_managed('channel2', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa') |
    +-----------------------------------------------------------------------------------------------------+
    | Source managed configuration details successfully deleted.                                          |
    +-----------------------------------------------------------------------------------------------------+
    

    Для получения дополнительной информации см. Раздел 19.4.9, «Переключение источников и реплик с помощью асинхронного отключения».

  • asynchronous_connection_failover_delete_source()

    Удалить информацию о конфигурации сервера источника репликации из списка источников для канала репликации.

    Синтаксис:

    asynchronous_connection_failover_delete_source(channel, host, port, network_namespace)

    Аргументы:

    • channel: Канал репликации, для которого этот сервер источника репликации был частью списка источников.

    • host: Имя хоста для этого сервера источника репликации.

    • port: Номер порта для этого сервера источника репликации.

    • network_namespace: Пространство имен сети для этого сервера источника репликации. Укажите пустую строку, так как этот параметр зарезервирован для использования в будущем.

    Возвращаемое значение:

    Строка, содержащая результат операции, например, был ли он успешным или нет.

    Пример:

    SELECT asynchronous_connection_failover_delete_source('channel2', '127.0.0.1', 3310, '');
    +------------------------------------------------------------------------------------------------+
    | asynchronous_connection_failover_delete_source('channel2', '127.0.0.1', 3310, '')              |
    +------------------------------------------------------------------------------------------------+
    | Source configuration details successfully deleted.                                             |
    +------------------------------------------------------------------------------------------------+
    

    Для получения дополнительной информации см. Раздел 19.4.9, «Переключение источников и реплик с помощью асинхронного отключения».

  • asynchronous_connection_failover_reset()

    Удалить все параметры, относящиеся к механизму асинхронного отключения. Функция очищает таблицы Performance Schema replication_asynchronous_connection_failover и replication_asynchronous_connection_failover_managed.

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

    Синтаксис:

    STRING asynchronous_connection_failover_reset()
    

    Аргументы:

    Нет.

    Возвращаемое значение:

    Строка, содержащая результат операции, например, был ли он успешным или нет.

    Пример:

    mysql> SELECT asynchronous_connection_failover_reset();
    +-------------------------------------------------------------------------+
    | asynchronous_connection_failover_reset()                                |
    +-------------------------------------------------------------------------+
    | The UDF asynchronous_connection_failover_reset() executed successfully. |
    +-------------------------------------------------------------------------+
    1 row in set (0.00 sec)
    

    Для получения дополнительной информации см. Раздел 19.4.9, «Переключение источников и реплик с помощью асинхронного отключения».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/replication-functions-async-failover.html

Spec-Zone.ru

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