暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

17.4.1.16 Replication of Invoked Features

原创 由迪 2020-04-07
716

复制诸如用户定义函数(UDF)和存储程序(存储过程和函数,触发器和事件)之类的已调用功能具有以下特征:

该功能的效果始终被复制。

使用基于语句的复制来复制以下语句:

CREATE EVENT

ALTER EVENT

DROP EVENT

CREATE PROCEDURE

DROP PROCEDURE

CREATE FUNCTION

DROP FUNCTION

CREATE TRIGGER

DROP TRIGGER

但是,使用基于行的复制来复制使用这些语句创建,修改或删除的功能的效果。

注意
尝试使用基于语句的复制来复制调用的功能会产生警告, “以语句格式登录是不安全的”。例如,尝试使用基于语句的复制来复制UDF会产生此警告,因为MySQL服务器目前无法确定UDF是否是确定性的。如果您完全确定所调用功能的影响是确定性的,则可以放心地忽略此类警告。

在的情况下CREATE EVENT 和ALTER EVENT:

SLAVESIDE_DISABLED无论指定的状态如何, 事件的状态都设置为 从属设备上的状态(不适用于DROP EVENT)。

通过从属服务器的服务器ID在从属服务器上标识创建事件的主服务器。中的 ORIGINATOR列 INFORMATION_SCHEMA.EVENTS 和中的originator列 mysql.event存储此信息。有关更多信息,请参见第21.8节“ INFORMATION_SCHEMA事件表”和 第13.7.5.19节“ SHOW EVENTS语句”。

功能实现以可更新的状态驻留在从属设备上,因此,如果主设备出现故障,则可以将该从设备用作主设备,而不会丢失事件处理。

要确定在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 ENABLEevent_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语句,重启服务器,然后再在从服务器上重新启用Event Scheduler(使用诸如SET GLOBAL event_scheduler = ON;)之类 的陈述

如果以后将新的主服务器降级为复制从机,则必须手动禁用该ALTER EVENT语句启用的所有事件 。您可以通过在单独的表中存储SELECT之前显示的语句中的事件名称来完成此操作 ,或者使用ALTER EVENT 语句使用共同的前缀重命名事件replicated_以标识事件 。

如果重命名事件,则在将该服务器降级为复制从属时,可以通过查询EVENTS表来标识事件,如下所示:

SELECT CONCAT(EVENT_SCHEMA, ‘.’, EVENT_NAME) AS ‘Db.Event’
FROM INFORMATION_SCHEMA.EVENTS
WHERE INSTR(EVENT_NAME, ‘replicated_’) = 1;

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论