如何复制在存储过程和函数内部发生的操作?

实际上,在存储过程和函数中执行的标准动作是从主MySQL服务器复制到从MySQL服务器。甚至在主MySQL服务器上通过常规DDL语句执行的存储过程和函数的创建也被复制到从MySQL服务器上。这样,对象将在两个服务器上都存在。

复制存储过程和函数内部发生的操作,因为MySQL记录了存储过程和函数内部发生的每个DDL事件。记录事件后,将其复制到从MySQL服务器。但是不会复制执行存储过程的实际调用。下面是一个示例,其中过程CALL将不会复制,因为它实际上是主MySQL服务器上的一个过程。

示例

mysql> Delimiter //
mysql> CREATE PROCEDURE myproc()    -> BEGIN
    -> DELETE FROM mytable LIMIT 1;
    -> END //

现在,当我们在主MySQL服务器上调用此过程时,它将不会复制。

mysql> Delimiter ;
mysql> CALL myproc();
猜你喜欢