Tatsächlich werden Standardoperationen, die in gespeicherten Prozeduren und Funktionen ausgeführt werden, vom Master-MySQL-Server auf den Slave-MySQL-Server repliziert. Sogar die Erstellung gespeicherter Prozeduren und Funktionen, die über normale DDL-Anweisungen auf dem Master-MySQL-Server ausgeführt werden, wird auf dem Slave-MySQL-Server repliziert. Auf diese Weise ist das Objekt gleichzeitig auf beiden Servern vorhanden.
Vorgänge, die innerhalb gespeicherter Prozeduren und Funktionen auftreten, werden repliziert, da MySQL jedes DDL-Ereignis protokolliert, das innerhalb gespeicherter Prozeduren und Funktionen auftritt. Nachdem das Ereignis protokolliert wurde, wird es auf dem Slave-MySQL-Server repliziert. Die tatsächlichen Aufrufe, die die gespeicherte Prozedur ausführen, werden jedoch nicht kopiert. Hier ist ein Beispiel, bei dem die Prozedur CALL nicht repliziert wird, da es sich tatsächlich um die Prozedur auf dem Haupt-MySQL-Server handelt.
mysql> Delimiter // mysql> CREATE PROCEDURE myproc() -> BEGIN -> DELETE FROM mytable LIMIT 1; -> END //
Wenn wir diese Prozedur nun auf dem Haupt-MySQL-Server aufrufen, wird sie nicht repliziert.
mysql> Delimiter ; mysql> CALL myproc();
Das obige ist der detaillierte Inhalt vonWie kann ich die Vorgänge replizieren, die in gespeicherten Prozeduren und Funktionen auftreten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!