19.5.1.18 Репликация и хранимые программы JavaScript
Репликация MySQL совместима с хранимыми программами JavaScript, при условии, что компонент MLE установлен на каждом сервере в топологии, из-за следующих проблем:
Реплика без установленного компонента принимает инструкции
CREATE FUNCTIONиCREATE PROCEDUREс кодом JavaScript из источника, но реплика не может выполнить созданные таким образом хранимые программы.Хранимые программы JavaScript, созданные на сервере без установленного компонента, не проверяются на корректность.
-
Следующие SQL-инструкции не могут быть успешно выполнены на реплике без установленного компонента:
CREATE LIBRARYDROP LIBRARYИнструкции
CREATE FUNCTIONилиCREATE PROCEDURE, содержащие предложениеUSING
На сервере без компонента MLE каждая из перечисленных инструкций отклоняется с ошибкой синтаксиса.
Это означает, что при выполнении инструкции CREATE FUNCTION или CREATE PROCEDURE без USING, содержащей некорректный код JavaScript, на сервере без установленного компонента MLE, инструкция выполняется успешно и, следовательно, реплицируется. Если на реплике установлен компонент MLE, при попытке выполнения такой инструкции на реплике возникает ошибка, что приводит к разрыву репликации.
Кроме того, при выполнении инструкций CREATE LIBRARY, DROP LIBRARY, CREATE FUNCTION ...
USING или CREATE PROCEDURE ...
USING на сервере без установленного компонента MLE, инструкция всегда отклоняется, так как сервер не поддерживает данный синтаксис.
Для установки (или удаления) компонента MLE на серверах MySQL, используемых в репликации, рекомендуется остановить репликацию, установить (или удалить) компонент на каждом сервере в топологии и только затем возобновить репликацию. Репликация между серверами в смешанной конфигурации (то есть, в которой на некоторых серверах установлен компонент MLE, а на некоторых нет) не поддерживается по причинам, указанным в предыдущем абзаце.
Дополнительную информацию о хранимых программах JavaScript в MySQL см. в Разделе 27.3, «Хранимые программы JavaScript». Сведения о компоненте MLE см. в Разделе 7.5.8, «Компонент многоязыкового движка (MLE)».
© 2025 Oracle
Licensed under the GPLv2 License.