我有一个3节点Postgres集群,想知道逻辑复制下的表/数据库。我面临的问题是,当领导者/主节点出现故障,其中一个副本将接管领导者/主服务器节点,然后随着时间的推移,当旧的领导者/主计算机重新加入集群时。在这种情况下,我想知道在这个新复制副本的逻辑复制下发生了什么变化。
注意:新副本将被同步,并且将包含与其他节点相同的数据。我正在使用postgres 11及以上的
如果使用逻辑复制:
在publisher端,pg_publication_tables
表将向您显示正在逻辑解码的表。
在订阅者侧,您可以监视pg_stat_subscription
以获得received_lsn和last_*时间列
如果使用pglogic扩展:在发布服务器端,pglogical.node_interface
将显示节点id及其名称。此外,pglogical.replication_set
表将显示在集合中复制的语句类型
在用户端,pglogical.show_subscription_status()
功能将向您显示订阅名称和状态,如replicating
按照以下步骤操作:
-
获取所需的复制集ID(没有列出所有可用的条件(:
SELECT * FROM pglogical.replication_set WHERE set_name = 'your_replication_set_name';
请参阅"set_id"列的值(例如:123456789(。
-
列出由"set_id"给定的所需复制集下的表:
SELECT * FROM pglogical.replication_set_table WHERE set_id = 123456789;
您将获得所需复制集ID下的所有表。