Verwalten logischer Replikationsslots für RDS für PostgreSQL
Bevor Sie ein Hauptversions-Upgrade einer DB-Instance von RDS für PostgreSQL durchführen können, die als Herausgeberknoten in einem logischen Replikationsszenario eingerichtet ist, müssen Sie alle Replikationsslots auf der Instance löschen. Bei der Vorabüberprüfung des Hauptversions-Upgrades werden Sie darüber informiert, dass das Upgrade erst fortgesetzt werden kann, wenn die Slots gelöscht wurden.
Um Slots aus Ihrer DB-Instance von RDS für PostgreSQL zu entfernen, löschen Sie zuerst das Abonnement und dann den Slot.
Um Replikationsslots zu identifizieren, die mit der pglogical-Erweiterung erstellt wurden, melden Sie sich bei jeder Datenbank an und rufen Sie die Namen der Knoten ab. Wenn Sie den Abonnentenknoten abfragen, erhalten Sie in der Ausgabe sowohl den Herausgeber- als auch den Abonnentenknoten, wie in diesem Beispiel gezeigt.
SELECT * FROM pglogical.node;node_id | node_name ------------+------------------- 2182738256 | docs_lab_target 3410995529 | docs_lab_provider (2 rows)
Die Details zum Abonnement erhalten Sie mit der folgenden Abfrage.
SELECT sub_name,sub_slot_name,sub_target FROM pglogical.subscription;sub_name | sub_slot_name | sub_target ----------+--------------------------------+------------ docs_lab_subscription | pgl_labdb_docs_labcb4fa94_docs_lab3de412c | 2182738256 (1 row)
Sie können das Abonnement jetzt wie folgt kündigen.
SELECT pglogical.drop_subscription(subscription_name := 'docs_lab_subscription');drop_subscription ------------------- 1 (1 row)
Nachdem Sie das Abonnement gekündigt haben, können Sie den Knoten löschen.
SELECT pglogical.drop_node(node_name := 'docs-lab-subscriber');drop_node ----------- t (1 row)
Sie können wie folgt überprüfen, dass der Knoten nicht mehr existiert.
SELECT * FROM pglogical.node;node_id | node_name ---------+----------- (0 rows)