Spec-Zone .ru
спецификации, руководства, описания, API
|
Полусинхронная репликация реализуется, используя плагины, таким образом, плагины должны быть установлены в сервер, чтобы сделать их доступными. После того, как плагин был установлен, Вы управляете им посредством системных переменных, связанных с ним. Эти системные переменные недоступны, пока связанный плагин не был установлен.
Чтобы использовать полусинхронную репликацию, следующие требования должны быть удовлетворены:
MySQL 5.5 или выше должен быть установлен.
Возможность установки плагинов требует сервера MySQL, который поддерживает
динамическую загрузку. Чтобы проверить это, проверьте что значение have_dynamic_loading
системная переменная YES
. Двоичные дистрибутивы должны поддерживать динамическую загрузку.
Репликация должна уже работать. Для получения информации о создании основного/ведомого отношения см. Раздел 16.1.1, "Как Установить Репликацию".
Чтобы установить полусинхронную репликацию, используйте следующие инструкции. 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
от
Чтобы видеть, какие плагины устанавливаются, используйте 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