管理 RDS for PostgreSQL 的逻辑复制查槽
对于在逻辑复制场景中充当发布者节点的 RDS for PostgreSQL 数据库实例,在对其执行主要版本升级之前,必须删除该实例上的复制插槽。主要版本升级预检查过程会通知您,在插槽被删除之前,升级无法继续。
要从 RDS for PostgreSQL 数据库实例中删除插槽,请先删除订阅,然后删除插槽。
要识别使用 pglogical
扩展创建的复制插槽,请登录到每个数据库并获取节点的名称。当您查询订阅者节点时,您会在输出中得到发布者节点和订阅者节点,如本示例所示。
SELECT * FROM pglogical.node;
node_id | node_name ------------+------------------- 2182738256 | docs_lab_target 3410995529 | docs_lab_provider (2 rows)
您可以通过以下查询获取有关订阅的详细信息。
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)
现在您可以删除订阅,如下所示。
SELECT pglogical.drop_subscription(subscription_name := 'docs_lab_subscription');
drop_subscription ------------------- 1 (1 row)
删除订阅后,您可以删除该节点。
SELECT pglogical.drop_node(node_name := 'docs-lab-subscriber');
drop_node ----------- t (1 row)
您可以验证该节点是否不再存在,如下所示。
SELECT * FROM pglogical.node;
node_id | node_name ---------+----------- (0 rows)