2008-12-10 4 views
5

Ich möchte eine (oder manchmal mehrere) SQL-Anweisungen verbinden und ausführen und diese NICHT zu den Slaves replizieren.MySQL-Replikation: vorübergehend verhindern, dass bestimmte SQL-Anweisungen auf die Slaves repliziert werden?

Ich habe keine replicate-do oder replyate-ignore configs, so kann ich nicht use einige nicht replizierte Datenbank, die Befehle aus senden. Und ich weiß über:

set global sql_slave_skip_counter = 1 

Aber das ist auf dem Slave. Ich möchte in der Lage sein, einen ähnlichen Befehl auf dem Master auszuführen und die folgenden N-Befehle nicht an die Slaves zu senden (was bedeutet, dass auch nicht in den Binlogs protokolliert wird).

Antwort

2

vorsicht gesetzt .....!

SET sql_log_bin=0;

MySQL Master-Server diesen Wert 0 auf 1 nach einer Weile (nach etwa einer Minute) automatisch eingestellt. Es wartet nicht, bis wir es explizit auf 1 gesetzt haben. Nach meiner Erfahrung ist das kein sicherer Weg, das binäre Logging abzuschalten .....!

+1

Was passiert, wenn es in einer Transaktion ausgeführt wird? –