Heim  >  Artikel  >  Datenbank  >  Wie kann ich die Vorgänge replizieren, die in gespeicherten Prozeduren und Funktionen auftreten?

Wie kann ich die Vorgänge replizieren, die in gespeicherten Prozeduren und Funktionen auftreten?

PHPz
PHPznach vorne
2023-09-07 11:57:021445Durchsuche

Wie kann ich die Vorgänge replizieren, die in gespeicherten Prozeduren und Funktionen auftreten?

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.

Beispiel

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen