Replikation kopiert Daten einer Datenbank kontinuierlich auf einen oder mehrere andere Server. Dadurch entstehen mehrere aktuelle Kopien, die für Lastverteilung, Ausfallsicherheit und Backups genutzt werden können – das ist die Grundlage von Hochverfügbarkeit in fast jedem größeren System.
Grundlegende Architekturen
- Master-Slave (Primary-Replica): Ein primärer Server nimmt Schreibzugriffe an; ein oder mehrere Replicas übernehmen Lesezugriffe oder dienen als Reserve. Fällt der Master aus, wird ein Replica zum neuen Primary promoviert.
- Master-Master (Multi-Primary): Mehrere Server akzeptieren Schreibzugriffe und gleichen sich gegenseitig ab. Konfliktlösung ist aufwendig und nur mit geeigneten Werkzeugen empfehlenswert.
- Cluster mit gemeinsamer Verwaltung: Systeme wie Galera oder MySQL Group Replication synchronisieren Knoten synchron und entscheiden Konflikte automatisch.
Replikationsarten
- Asynchrone Replikation: Der Primary meldet einen Schreibzugriff sofort als erfolgreich, die Replicas erhalten die Änderung später. Geringe Latenz, aber im Fehlerfall können wenige Änderungen fehlen.
- Semi-synchrone Replikation: Mindestens ein Replica bestätigt den Empfang, bevor der Primary den Commit abschließt – ein guter Kompromiss.
- Synchron (Group Replication): Alle Knoten bestätigen, bevor committet wird. Höchste Konsistenz, aber höhere Latenz.
Wofür wird Replikation genutzt?
- Lastverteilung: Leseanfragen auf Replicas verteilen (Read-Scaling), damit der Primary entlastet wird.
- Hochverfügbarkeit: Beim Ausfall eines Servers übernimmt ein Replica – Ausfallzeiten sinken deutlich.
- Backup-Entlastung: Backups vom Replica ziehen, ohne den Produktivserver zu belasten.
- Migration ohne Ausfallzeit: Das Zielsystem per Replikation nachziehen und dann umschalten (siehe Datenbank-Migration).
Typische Stolpersteine
- Verzögerung (Lag): Bei hoher Schreiblast hinken Replicas hinterher – Replikationsstatus regelmäßig überwachen (
SHOW REPLICA STATUSin MySQL/MariaDB). - Fehlerhafte Statements: Ein Fehler auf dem Replica (z. B. doppelter Schlüssel) stoppt den Replikations-Thread und muss manuell behoben werden.
- Konsistenz: Asynchrone Replikation garantiert letztlich Konsistenz (Eventual Consistency), aber keinen sofort gleichen Stand.
- Schema-Änderungen: DDL auf dem Primary kann auf Replicas Konflikte auslösen – Schema-Migrationen planen (siehe Views und Trigger).
Verwandte Grundlagen: Transaktionen, ACID, Indizes.