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

16.4.1.11. Репликация Вызванных Функций

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

Определить, есть ли какие-либо запланированные события на сервере MySQL, которые создавались на различном сервере (который действовал как ведущее устройство репликации), запрос INFORMATION_SCHEMA.EVENTS таблица способом, подобным тому, что показывают здесь:

SELECT EVENT_SCHEMA, EVENT_NAME    FROM INFORMATION_SCHEMA.EVENTS    WHERE STATUS = 'SLAVESIDE_DISABLED';

Альтернативно, можно использовать SHOW EVENTS оператор, как это:

SHOW EVENTS    WHERE STATUS = 'SLAVESIDE_DISABLED';

Продвигая ведомое устройство репликации, имеющее такие события ведущему устройству репликации, следует включить каждому использованию события ALTER EVENT event_name ENABLED, где event_name имя события.

Если больше чем одно ведущее устройство было включено в создание событий на этом ведомом устройстве, и Вы хотите идентифицировать события, которые создавались только на данном ведущем устройстве, имеющем ID сервера master_id, измените предыдущий запрос на EVENTS таблица, чтобы включать ORIGINATOR столбец, как показано здесь:

SELECT EVENT_SCHEMA, EVENT_NAME, ORIGINATOR    FROM INFORMATION_SCHEMA.EVENTS    WHERE STATUS = 'SLAVESIDE_DISABLED'    AND   ORIGINATOR = 'master_id'

Можно использовать ORIGINATOR с SHOW EVENTS оператор подобным способом:

SHOW EVENTS    WHERE STATUS = 'SLAVESIDE_DISABLED'    AND   ORIGINATOR = 'master_id'

Прежде, чем включить событиям, которые были тиражированы от ведущего устройства, следует отключить MySQL Event Scheduler на ведомом устройстве (использование оператора такой как SET GLOBAL event_scheduler = OFF;), выполните любого необходимого ALTER EVENT операторы, перезапустите сервер, затем повторно включите Планировщику События на ведомом устройстве позже (использующий оператор такой как SET GLOBAL event_scheduler = ON;)-

Если Вы позже понижаете в должности новое ведущее устройство назад к тому, чтобы быть ведомым устройством репликации, следует отключить вручную все события, включенные ALTER EVENT операторы. Можно сделать это, храня в отдельной таблице имена события от SELECT оператор, показанный ранее, или использование ALTER EVENT операторы, чтобы переименовать события с общим префиксом такой как replicated_ идентифицировать их.

Если Вы переименовываете события, то, понижая в должности этот сервер назад к тому, чтобы быть ведомым устройством репликации, можно идентифицировать события, запрашивая EVENTS таблица, как показано здесь:

SELECT CONCAT(EVENT_SCHEMA, '.', EVENT_NAME) AS 'Db.Event'      FROM INFORMATION_SCHEMA.EVENTSWHERE INSTR(EVENT_NAME, 'replicated_') = 1;