簡體   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