Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Logische Replikation
Die logische Replikation ist eine Methode zur Replikation von Datenobjekten und ihren Änderungen auf der Grundlage der Replikationsidentität der Objekte und ihrer Änderungen. Bei der logischen Replikation wird ein Veröffentlichungs - und Abonnementmodell verwendet, bei dem ein oder mehrere Abonnenten eine oder mehrere Veröffentlichungen auf einem Herausgeberknoten abonnieren. Abonnenten rufen Daten aus den Publikationen ab, die sie abonnieren.
Mit der logischen Replikation haben Sie eine genaue Kontrolle sowohl über die Datenreplikation als auch über die Sicherheit. Sie können die logische Replikation in den folgenden Anwendungsfällen verwenden:
Replikation zwischen verschiedenen Hauptversionen von PostgreSQL
Replikation zwischen PostgreSQL-Instanzen auf verschiedenen Plattformen (z. B. Linux auf Windows)
Architektur
Die folgenden Workflow-Schritte zeigen, wie eine logische Replikationsarchitektur funktioniert:
Sie erstellen einen Snapshot der Daten in der Herausgeberdatenbank und kopieren diese Daten in die Abonnentendatenbank.
Die Änderungen in den Herausgeberdatenbanken werden in Echtzeit an den Abonnenten gesendet.
Der Abonnent wendet die Daten in derselben Reihenfolge an wie der Herausgeber, sodass die Transaktionskonsistenz für Veröffentlichungen innerhalb eines einzigen Abonnements gewährleistet ist.
Eine Publikation kann auf einer primären Instanz (Herausgeber) definiert werden. Eine Publikation besteht aus einer Reihe von Änderungen, die anhand einer Tabelle oder einer Gruppe von Tabellen generiert wurden. Sie können Änderungen aus einer Kombination von INSERT-, UPDATE-, DELETE- und TRUNCATE-Vorgängen auswählen. Standardmäßig werden all diese Änderungen in die Abonnentendatenbank repliziert. Dies steht im Gegensatz zur physischen Replikation, bei der exakte Blockadressen für eine byte-by-byte Replikation verwendet werden.
In einer veröffentlichten Tabelle muss REPLICA IDENTITYfull
Das bedeutet, dass die gesamte Zeile zum Schlüssel wird. Es wird empfohlen, die Replikatidentität full
als letzten Ausweg auf festzulegen, da diese Einstellung ineffizient ist.
Ein Abonnement ist die nachgelagerte Seite der logischen Replikation. Der Knoten, auf dem ein Abonnement definiert ist, wird als Abonnent bezeichnet. Ein Abonnement definiert die Verbindung zu einer anderen Datenbank und einer Gruppe von Veröffentlichungen (eine oder mehrere), die es abonnieren möchte.
Konfigurationseinstellungen
Die folgenden Konfigurationen sind für Herausgebereinstellungen erforderlich:
Stellen Sie
wal_level
auf einlogical
.Wird so eingestellt
max_replication_slots
, dass mindestens die Anzahl der Abonnements, von denen erwartet wird, dass sie eine Verbindung herstellen, und einige Reserveslots für die Tabellensynchronisierung aufnehmen.Legen
max_wal_senders
Sie fest,max_replication_slots
ob und wie viele physische Replikate vorhanden sind.
Die folgenden Konfigurationen sind für Abonnenteneinstellungen erforderlich:
Legen
max_replication_slots
Sie fest, dass die geringste Anzahl von Abonnements berücksichtigt wird, die Sie dem Abonnenten hinzufügen möchten, und einige Reserveabonnements für die Tabellensynchronisierung.Legen
max_logical_replication_workers
Sie fest, dass mindestens die Anzahl der Abonnements und einige Reserve-Worker für die Tabellensynchronisierung berücksichtigt werden.max_worker_processes
Mindestens auf (max_logical_replication_workers
+1
) gesetzt.
Jedes Abonnement empfängt Änderungen über einen Replikationssteckplatz.
Die folgenden Schritte zeigen, wie eine logische Replikation durchgeführt wird:
Erstellen Sie einen Herausgeber, indem Sie den Befehl CREATE PUBLICATION
für eine Gruppe von Tabellen (die Teil der Replikation sein werden) in der Quelldatenbank verwenden. Erstellen Sie einen Abonnenten mit dem Befehl CREATE SUBSCRIPTION
und geben Sie dann bei der Erstellung des Abonnenten die Veröffentlichungsdetails an. Das anfängliche Laden der Daten beginnt automatisch von der Quelldatenbank zur Zieldatenbank.
Die Änderungsdaten, die von Replikationssteckplätzen erfasst werden, werden in die Zieldatenbank repliziert.
Verwenden Sie pg_stat_replication
(eine Katalogtabelle), um den Status der Replikation zu überprüfen. Verwenden Sie pg_stat_replication_slots , um den Replikationsslot zu überprüfen.
Weitere Informationen finden Sie im Beitrag Verwenden von logischer Replikation zur Replikation von verwaltetem Amazon RDS for PostgreSQL und Amazon Aurora to Self-managed PostgreSQL
Einschränkungen
Wir empfehlen Ihnen, die folgenden Einschränkungen der logischen Replikationsmethode zu berücksichtigen, bevor Sie mit der Migration beginnen:
Die logische Replikation weist derzeit die meisten Einschränkungen und Funktionslücken auf.
Bei der logischen Replikation können keine Operationen mit Data Definition Language (DDL), Sequenz und große Objekte repliziert werden. Eine Aktion zum Kürzen (die für eine Tabelle mit einem Fremdschlüssel gilt) muss verknüpfte Tabellen in demselben Abonnement enthalten.
Weitere Informationen zu den Einschränkungen der logischen Replikation finden Sie unter 31.6. Einschränkungen