将触发器在单主机多从机复制中在MySQL从机中运行

时间:2011-10-21 10:11:53

标签: java mysql triggers replication slave

我们的客户正在运行具有多个从属服务器的单一主服务器(在群集中)。

现在,他希望我们在奴隶上添加,更新或删除新记录时,编写一些在奴隶上运行的触发器(仅限)。该触发器应该运行外部java程序。

这可能吗?推荐?

我们如何从触发器运行java程序?推荐/安全吗?

任何需要照顾的陷阱?

1 个答案:

答案 0 :(得分:1)

是的,这是可能的。您需要在从站上创建这些触发器,它们将在读取和执行binlog时触发。

您可以使用sys_exec UDF available from MySQL Forgeor this link)执行外部程序。

SELECT sys_exec('/path/to/program')

只要注意程序的功能,在外部程序返回之前 - 查询将无法完成。如果它是进行进一步处理的东西,我建议创建一种在端口上侦听的排队系统,这样你就可以立即exit(0),让程序执行它的东西并释放mysql线程,以便查询完成。