MySQL-GTID-Replikation (asynchron / semisynchron)
MySQLStufe: MittelDauer: 45–90 Min.Richtet aus installierten MySQL-Servern eine GTID-basierte Replikation mit 1 Source + N Replicas ein: Replikationsbenutzer, Übertragung der vorhandenen Daten mit dem Clone-Plugin oder mysqldump, SOURCE_AUTO_POSITION, TLS, optional Semi-Sync, Replicas mit super_read_only, Überwachung der Verzögerung und ein Verfahren für das manuelle Failover. Am Ende hast du eine überwachte Topologie, die Schreibzugriffe auf der Source und Lesezugriffe auf den Replicas bedienen kann. Brauchst du automatisches Failover, sieh dir InnoDB Cluster an; für den täglichen Betrieb und Störungen einer bestehenden Replikation den Betriebsleitfaden zur Replikation.
Topologie: 1 Source + 1..5 Replicas
Vor dem Start
- Auf allen Servern ist MySQL … in derselben Unterversion installiert und läuft (DBAtlas-Leitfaden MySQL-Installation auf einem Einzelserver), Binlog und GTID sind aktiv. Der Betriebssystem-root kann sich mit mysql ohne Passwort verbinden.
- server_id und server_uuid sind auf jedem Server unterschiedlich. (Wurden die Server durch Kopieren/Klonen erstellt, kann auto.cnf im Datadir identisch sein: lösche die Datei und starte den Dienst neu.)
- Die Server erreichen sich gegenseitig über Port … (…).
- Die Uhren sind synchronisiert (chrony). Verzögerungsmessung und PITR beruhen auf Zeitstempeln.
- Auf den Replicas ist so viel freier Platz wie die Datenmenge der Source…, zusätzlich Platz für die Dump-Datei….
- Datenmenge auf der Source und Netzgeschwindigkeit sind bekannt (um die Übertragungsdauer abzuschätzen).
- Für den Replikationsbenutzer… und den temporären Clone-Benutzer… liegen starke Passwörter bereit (mindestens 8 Zeichen, Groß-/Kleinbuchstaben, Ziffern, Sonderzeichen; ohne ' und \). Die Passwörter werden in den Schritten abgefragt, ohne angezeigt zu werden.
- Es ist bekannt, dass die Anwendung Schreibzugriffe nur an die Source und Lesezugriffe (optional) an die Replicas sendet; die Replicas werden super_read_only.
Phasen der Anleitung
- Vorbereitung (alle Server) — Serverkennungen prüfen · Andere Nodes in der Firewall zulassen · Replikationseinstellungen hinzufügen (Source) · Replikationseinstellungen hinzufügen (…) · MySQL neu starten
- Vorbereitung der Source — Replikationsbenutzer anlegen · Semi-Sync-Plugins installieren · Semi-Sync auf der Source aktivieren
- Datenübertragung auf die Replica (Clone) — Clone-Plugin installieren · Temporären Clone-Benutzer anlegen · Source klonen (…)
- Datenübertragung auf die Replica (mysqldump) — Konsistenten Dump von der Source erstellen · Dump auf die Replicas kopieren · Dump laden (…)
- Replikation starten — Replica schreibgeschützt machen (…) · Source festlegen und Replikation starten (…)
- Verifizierung — Verbundene Replicas auf der Source anzeigen · Testschreibvorgang (Source) · Testschreibvorgang auf der Replica lesen (…) · Testdatenbank löschen
- Verzögerung und Status überwachen — Replikationsstatus und Verzögerung (…)
- Aufräumen — Clone-Benutzer löschen · Dump-Datei löschen
- Manuelles Failover (Verlust der Source) — Failover: Zustand des Kandidaten prüfen · Failover: Zustand des Kandidaten prüfen · Failover: Kandidaten zur Source machen · Failover: Kandidaten zur Source machen · Failover: übrige Replicas mit der neuen Source verbinden (…) · Failover: übrige Replicas mit der neuen Source verbinden (…) …