Spec-Zone.ru › MySQL 8.4

19.4.10.1 Установка полусинхронной репликации

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

В этом разделе описано, как установить плагины полусинхронной репликации. Общие сведения об установке плагинов см. в разделе 7.6.1, «Установка и удаление плагинов».

Для использования полусинхронной репликации должны быть выполнены следующие требования:

  • Возможность установки плагинов требует сервер MySQL, поддерживающий динамическую загрузку. Чтобы проверить это, убедитесь, что значение системной переменной have_dynamic_loading равно YES. Бинарные дистрибутивы должны поддерживать динамическую загрузку.

  • Репликация должна уже работать, см. раздел 19.1, «Настройка репликации».

  • Не должно быть настроено несколько каналов репликации. Полусинхронная репликация совместима только с каналом репликации по умолчанию. См. раздел 19.2.2, «Каналы репликации».

Суффикс имени файла для файлов библиотек плагинов отличается в зависимости от платформы (например, .so для систем Unix и Unix-подобных систем и .dll для Windows). Имена плагинов и файлов библиотек следующие:

  • Сервер-источник: плагин rpl_semi_sync_source (библиотека semisync_source.so или semisync_source.dll)

  • Реплика: плагин rpl_semi_sync_replica (библиотека semisync_replica.so или semisync_replica.dll)

Для использования плагином сервером-источником или сервером-репликой соответствующий файл библиотеки плагина должен находиться в каталоге плагинов MySQL (каталог, задаваемый системной переменной plugin_dir). При необходимости, настройте расположение каталога плагинов, задав значение переменной plugin_dir при запуске сервера. Файл библиотеки плагина источника должен присутствовать в каталоге плагинов сервера-источника. Файл библиотеки плагина реплики должен присутствовать в каталоге плагинов каждого сервера-реплики.

Для настройки полусинхронной репликации используйте следующие инструкции. Упоминаемые здесь операторы INSTALL PLUGIN, SET GLOBAL, STOP REPLICA и START REPLICA требуют привилегии REPLICATION_SLAVE_ADMIN (или устаревшей привилегии SUPER).

Для загрузки плагинов используйте оператор INSTALL PLUGIN на источнике и на каждой реплике, которая должна быть полусинхронной, при необходимости изменяя суффикс .so для вашей платформы.

На источнике:

INSTALL PLUGIN rpl_semi_sync_source SONAME 'semisync_source.so';

На каждой реплике:

INSTALL PLUGIN rpl_semi_sync_replica SONAME 'semisync_replica.so';

Если попытка установить плагин приводит к ошибке в Linux, похожей на представленную здесь, необходимо установить libimf:

mysql> INSTALL PLUGIN rpl_semi_sync_source SONAME 'semisync_source.so';
ERROR 1126 (HY000): Can't open shared library
'/usr/local/mysql/lib/plugin/semisync_source.so'
(errno: 22 libimf.so: cannot open shared object file:
No such file or directory)

Вы можете получить libimf с https://dev.mysql.com/downloads/os-linux.html.

Для проверки установки плагина изучите таблицу Информационной схемы PLUGINS или используйте оператор SHOW PLUGINS (см. раздел 7.6.2, «Получение информации о плагинах сервера»). Например:

mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
       FROM INFORMATION_SCHEMA.PLUGINS
       WHERE PLUGIN_NAME LIKE '%semi%';
+----------------------+---------------+
| PLUGIN_NAME          | PLUGIN_STATUS |
+----------------------+---------------+
| rpl_semi_sync_source | ACTIVE        |
+----------------------+---------------+

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

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

SET GLOBAL rpl_semi_sync_source_enabled = 1;
SET GLOBAL rpl_semi_sync_replica_enabled = 1;

Если вы включаете полусинхронную репликацию на реплике во время выполнения, вы также должны запустить поток ввода-вывода репликации (приемник) (сначала остановив его, если он уже запущен), чтобы реплика подключилась к источнику и зарегистрировалась как полусинхронная реплика:

STOP REPLICA IO_THREAD;
START REPLICA IO_THREAD;

Если поток ввода-вывода репликации (приемник) уже запущен, и вы не перезапускаете его, реплика продолжает использовать асинхронную репликацию.

Настройка, указанная в файле параметров, вступает в силу каждый раз при запуске сервера. Например, вы можете задать переменные в файлах my.cnf на серверах-источниках и репликах следующим образом. На источнике:

[mysqld]
rpl_semi_sync_source_enabled=1

На каждой реплике:

[mysqld]
rpl_semi_sync_replica_enabled=1

Вы можете настроить поведение плагинов полусинхронной репликации, используя системные переменные, которые становятся доступными после установки плагинов. Сведения о ключевых системных переменных см. в разделе 19.4.10.2, «Настройка полусинхронной репликации».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/replication-semisync-installation.html

Spec-Zone.ru

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