Ich führe eine Dual-Master-MySQL-Replikation aus und möchte jetzt zu einer einzelnen Datenbank ohne Replikation wechseln. Wie deaktiviere ich die Replikation für beide Datenbanken vollständig?
64
Ich führe eine Dual-Master-MySQL-Replikation aus und möchte jetzt zu einer einzelnen Datenbank ohne Replikation wechseln. Wie deaktiviere ich die Replikation für beide Datenbanken vollständig?
Um die Replikation mit einem Master-Master-Setup vollständig zu deaktivieren, müssen Sie auf jedem Slave folgende Schritte ausführen:
STOP SLAVE;
RESET SLAVE;
(Verwendung RESET SLAVE ALL;
für MySQL 5.5.16 und höher)
SLAVE STATUS
Abfragen gemeldet, auch nachdem derRESET SLAVE
Befehl erteilt wurde. Wichtig für Tools zur Überwachung oder zum Remotekonfigurationsmanagement. Bestätigtes Verhalten mit MySQL 5.5.38 unter CentOS 6.5.Ich weiß, dass dies eine alte Frage ist, aber ich habe festgestellt, dass ich auch die Slave-Variablen zurücksetzen muss. Wenn Sie "blah" wie vorgeschlagen verwenden, versucht der Server beim Start, den Server "blah" zu finden.
Sie können überprüfen, ob das Gerät kein Slave mehr ist
quelle
CHANGE MASTER TO MASTER_HOST=''
jetzt einen Fehler aus.Auf den Slave-Servern:
Weder auf dem Master noch auf dem Slave muss MySQL neu gestartet werden. Eine vollständige Dokumentation finden Sie in Abschnitt 19 des MySQL-Referenzhandbuchs .
Es wird empfohlen, die restlichen Replikationseinstellungen beizubehalten, falls Sie die vorherige Konfiguration wiederherstellen möchten. Auf diese Weise müssen Sie nur die Daten verschieben und die Slave-Position zurücksetzen (vergessen Sie nicht, den Skip-Slave-Start zu entfernen), anstatt das gesamte Setup-Tuch neu zu erstellen.
quelle
Unabhängig von der MySQL-Version ist der vollständigste Weg, dies zu tun, der folgende
Dies muss für die neueste Version funktionieren, da die Replikationseinstellungen für MySQL 5.5 noch im RAM verbleiben.
Ich habe gerade eine ähnliche Frage zu diesem Thema beantwortet: Wie ändere ich einen früheren MySQL-Slave in einen Master und entferne Slave-Statusinformationen?
quelle
Das Bearbeiten der Datei my.cnf allein reicht nicht aus, um die Replikation zu deaktivieren. Tatsächlich ist dies nicht mehr die empfohlene Möglichkeit, dies zu aktivieren. Das Einfügen von Einträgen in die Datei my.cnf wirkt sich nur beim nächsten Start aus und verhält sich so, als hätten Sie den Befehl im mysql-Client eingegeben:
mysql> change master to master_host = 'blah', master_user = 'blah', master_password = 'blah' ...;
Beide Methoden erstellen eine Datei im Datenverzeichnis mit dem Namen master.info . Solange diese Datei vorhanden ist, versucht der Server, mit den dort angegebenen Details zu replizieren. Der "RESET SLAVE;" Der in der ersten Antwort aufgeführte Befehl entfernt die Datei master.info (sowie die Datei relay-log.info ). Wie in der ersten Antwort erwähnt, möchten Sie auch sicherstellen, dass diese Konfigurationsinformationen nicht in der Datei my.cnf enthalten sind. Andernfalls wird die Protokollierung beim nächsten Neustart des Servers wieder aktiviert.
quelle
Eine Antwort ist hier:
http://www.oops.net.br/~bac/bam/canopy_repl_setup.htm
* Bearbeiten Sie die MySQL-Konfigurationsdatei: /etc/my.cnf und entfernen Sie die folgenden 7 Zeilen aus dem Abschnitt [mysqld]:
Starten Sie MySQL neu.
quelle
Ich füge dies zu Harrison Fisk's Antwort hinzu:
Wenn Sie verwendet haben,
RESET SLAVE ALL;
ist ein Neustart nicht erforderlich.Außerdem möchten Sie möglicherweise Ereignisse aktivieren, die auf dem Slave deaktiviert wurden:
Für jeden von ihnen:
quelle