繁体   English   中英

如何在 Postgres 中复制下 select 表或在 Postgres 中列出复制下的数据库

[英]How to select tables under replication in Postgres or List databases under replication in Postgres

我有 3 个节点的 Postgres 集群,想知道逻辑复制下的表/数据库。 我面临的问题是,当领导者/主节点出现故障并且其中一个副本接管领导者/主节点,然后随着时间的推移,旧的领导者/主节点重新加入集群。 在这种情况下,我想知道在这个新副本的逻辑复制下发生了什么变化。

注意:新副本将被同步并包含与其他节点相同的数据。 我正在使用 postgres 11 及更高版本

如果您使用的是逻辑复制:

发布者方面, pg_publication_tables表将显示您正在逻辑解码的表。

订阅者端,您可以监控pg_stat_subscription以获取 received_lsn 和 last_* 时间列

如果您使用 pglogical 扩展:在发布者端, pglogical.node_interface将向您显示节点 ID 及其名称。 此外, pglogical.replication_set表将显示哪些类型的语句在集合中获得复制

在订阅者方面, pglogical.show_subscription_status() function 将显示订阅名称和replicating状态等状态

按着这些次序:

  1. 获取所需的复制集 ID(无条件列出所有可用):

     SELECT * FROM pglogical.replication_set WHERE set_name = 'your_replication_set_name';

    请参阅“set_id”列值(例如:123456789)。

  2. 列出由“set_id”给出的所需复制集下的表:

     SELECT * FROM pglogical.replication_set_table WHERE set_id = 123456789;

    您将获得所需复制集 ID 下的所有表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM