Spec-Zone .ru
спецификации, руководства, описания, API

16.3.8.2. Полусинхронная Установка Репликации и Конфигурация

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

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

Чтобы установить полусинхронную репликацию, используйте следующие инструкции. INSTALL PLUGIN, SET GLOBAL, STOP SLAVE, и START SLAVE операторы, упомянутые здесь, требуют SUPER полномочие.

Полусинхронные плагины репликации включаются с дистрибутивами MySQL.

Распакуйте компонентное распределение, которое содержит файлы для основной стороны и ведомой стороны.

Установите компонентные файлы в сменном каталоге соответствующего сервера. Установите semisync_master* файлы в сменном каталоге главного сервера. Установите semisync_slave* файлы в сменном каталоге каждого ведомого сервера. Расположение сменного каталога доступно как значение сервера plugin_dir системная переменная.

Чтобы загрузить плагины, используйте INSTALL PLUGIN оператор на ведущем устройстве и на каждом ведомом устройстве, которое должно быть полусинхронным.

На ведущем устройстве:

mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME
        'semisync_master.so';

На каждом ведомом устройстве:

mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME
        'semisync_slave.so';

Предыдущие команды используют сменный суффикс имени файла .so. Различный суффикс мог бы применяться на Вашей системе. Если Вы не уверены в сменном имени файла, ищете плагины в сменном каталоге сервера.

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

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

Можно получить libimf от http://dev.mysql.com/downloads/os-linux.html.

Чтобы видеть, какие плагины устанавливаются, используйте SHOW PLUGINS оператор, или запрос INFORMATION_SCHEMA.PLUGINS таблица.

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

Чтобы управлять, включается ли установленный плагин, устанавливает соответствующие системные переменные. Можно установить эти переменные при использовании времени выполнения SET GLOBAL, или в сервере запускаются на командной строке или в файле опции.

Во времени выполнения эти системные переменные основной стороны доступны:

mysql> SET GLOBAL rpl_semi_sync_master_enabled =
        {0|1};mysql> SET GLOBAL rpl_semi_sync_master_timeout = N;

На ведомой стороне эта системная переменная доступна:

mysql> SET GLOBAL rpl_semi_sync_slave_enabled =
        {0|1};

Для rpl_semi_sync_master_enabled или rpl_semi_sync_slave_enabled, значение должно быть 1, чтобы позволить полусинхронной репликации или 0 отключить это. По умолчанию эти переменные устанавливаются в 1.

Для rpl_semi_sync_master_timeout, значение N дается в миллисекундах. Значение по умолчанию 10000 (10 секунд).

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

mysql> STOP SLAVE IO_THREAD; START SLAVE
        IO_THREAD;

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

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

На ведущем устройстве:

[mysqld]rpl_semi_sync_master_enabled=1rpl_semi_sync_master_timeout=1000 # 1 second

На каждом ведомом устройстве:

[mysqld]rpl_semi_sync_slave_enabled=1