0Pricing
SQL Academy · Lektion

Logische Replikation für Sharding

Verwenden Sie die logische Replikation mit PUBLICATION/SUBSCRIPTION, um Tabellen zwischen Clustern zu verschieben und Upgrades auf eine neue Hauptversion zu unterstützen.

Logische Replikation für Sharding ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.

Logische vs. physische Replikation

Physische Replikation überträgt BYTES des WAL – den gesamten Cluster, mit derselben Version. Logische Replikation überträgt ZEILEN – ausgewählte Tabellen, gegebenenfalls über verschiedene PG-Versionen hinweg:

  • Bestimmte Tabellen abonnieren
  • Von PG 14 → PG 16 replizieren (Upgrades!)
  • Zwei-Wege-/Multi-Master-Replikation mit entsprechender Vorsicht
  • Unterschiedliche Schemas zulässig

Einrichtung: Publisher

Markieren Sie den Primärserver als Publisher:

-- postgresql.conf
wal_level = logical

-- Create a publication:
CREATE PUBLICATION pub_orders FOR TABLE orders, order_items;

-- Or all tables in the database:
CREATE PUBLICATION pub_all FOR ALL TABLES;

Einrichtung: Subscriber

In der Zieldatenbank:

CREATE SUBSCRIPTION sub_orders
  CONNECTION 'host=primary port=5432 user=repl dbname=mydb'
  PUBLICATION pub_orders;

Erste Synchronisierung

Die Subscription führt zunächst eine Kopie aller passenden Tabellen aus und streamt anschließend die Änderungen. Das Zielschema muss mit dem Quellschema übereinstimmen.

Anwendungsfall: Upgrade der Hauptversion

Logische Replikation ist der moderne Weg, Postgres mit minimaler Ausfallzeit zu aktualisieren:

  1. PG16-Cluster erstellen
  2. Von PG14 nach PG16 logisch replizieren
  3. Anwendungen umschalten, sobald PG16 aufgeholt hat
  4. PG14 herunterfahren

Anwendungsfall: Datenbank aufteilen

Um eine riesige Datenbank in kleinere Datenbanken aufzuteilen:

  1. Nur die vom neuen Service benötigten Tabellen veröffentlichen
  2. In der neuen Datenbank abonnieren
  3. Schreibvorgänge nach dem Aufholen migrieren

Anwendungsfall: Heterogene Replikate

Auf ein Lesereplikat mit anderen Indizes oder auf ein Data-Warehouse-Postgres mit zusätzlichen Berichtsspalten replizieren.

Konflikte

Logische Replikation löst Konflikte nicht automatisch. Wenn dieselbe Zeile auf beiden Seiten aktualisiert wird, stoppt der Subscriber mit einem Fehler. Vermeiden Sie dies durch:

  • Schreibvorgänge nur auf einer Seite
  • REPLICA IDENTITY FULL für bessere Diagnose
  • Konflikte manuell lösen und die Subscription neu starten

Schemaänderungen

DDL wird NICHT repliziert. Wenden Sie Schemaänderungen manuell auf beiden Seiten an – typischerweise zuerst auf dem Subscriber und anschließend auf dem Publisher. Alternativ können Sie die Erweiterung pglogical verwenden, die DDL replizieren kann.

Teilweise Replikation

Modernes PG erlaubt Zeilenfilter und Spaltenlisten pro Publication:

CREATE PUBLICATION us_only FOR TABLE customers
  WHERE (country = 'US');

CREATE PUBLICATION compact FOR TABLE users (id, email);

Sharding mit logischer Replikation

Verschieben Sie Mandanten auf einen dedizierten Shard:

  1. Publication auf der Quelle, gefiltert auf einen Mandanten
  2. Am Ziel abonnieren
  3. Anwendung auf den neuen Shard umschalten
  4. Mandantendaten auf der Quelle löschen

Performance und Verzögerung

Logische Replikation läuft pro Subscription weitgehend in einem Thread. Quellen mit hohem Volumen profitieren möglicherweise von mehreren Publications/Subscriptions oder Drittanbieter-Tools wie pglogical / Debezium.

Zusammenfassung

Logische Replikation ermöglicht Streaming auf Zeilenebene.

  • Versionsübergreifend, für Teilmengen von Tabellen
  • Hauptversions-Upgrades mit minimaler Ausfallzeit
  • Die Konfliktlösung ist IHR Problem
  • DDL wird nicht repliziert

Kurzer Check

Sie müssen mit minimaler Ausfallzeit von PostgreSQL 14 auf 16 aktualisieren. Welche Replikation hilft dabei?

Häufig gestellte Fragen

Ist die Lektion „Logische Replikation für Sharding“ kostenlos?

Ja — der vollständige Text von „Logische Replikation für Sharding“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Logische Replikation für Sharding“?

Verwenden Sie die logische Replikation mit PUBLICATION/SUBSCRIPTION, um Tabellen zwischen Clustern zu verschieben und Upgrades auf eine neue Hauptversion zu unterstützen. Du übst SQL Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um SQL Academy zu starten?

Keine Vorkenntnisse erforderlich. SQL Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Logische Replikation für Sharding“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser SQL Academy-Lektion Code schreiben und ausführen?

Ja. Jede SQL Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Streaming-Replikation und WAL
  2. Logische Replikation für Sharding
  3. Failover und Leader Election (Patroni, Stolon)
  4. Read Replicas und Verbindungsrouting
← Zurück zu SQL Academy