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.