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

[ACDU 翻译] MySQL 17.5.1.16 调用特征的复制

原创 由迪 2022-10-27
263

可加载函数和存储程序(存储过程和函数、触发器和事件)等调用特性的复制提供了以下特性:

要确定 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 的给定源上创建的事件 source_id,请修改EVENTS表上的上一个查询以包含该 ORIGINATOR列,如下所示:

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

您可以以类似的方式 使用ORIGINATOR该 语句:SHOW EVENTS

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

在启用从源复制的事件之前,您应该禁用副本上的 MySQL 事件调度程序(使用语句,例如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.EVENTS WHERE INSTR(EVENT_NAME, 'replicated_') = 1;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论