2025年9月25日: PostgreSQL 18 釋出!
支援的版本:當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本:devel
不支援的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4

53.20. pg_replication_slots #

檢視pg_replication_slots提供了資料庫叢集中所有現有複製槽及其當前狀態的列表。

有關複製槽的更多資訊,請參閱第 26.2.6 節第 47 章

表 53.20. pg_replication_slots

列 型別

描述

slot_name name

複製槽的唯一、叢集範圍的識別符號。

plugin name

包含此邏輯槽使用的輸出外掛的共享物件的基名稱,對於物理槽則為 null。

slot_type text

槽的型別:physicallogical

datoid oid (引用 pg_database.oid)

與槽關聯的資料庫的 OID,或 null。只有邏輯槽才有關聯的資料庫。

database name (引用 pg_database.datname)

與槽關聯的資料庫的名稱,或 null。只有邏輯槽才有關聯的資料庫。

temporary bool

如果是臨時複製槽,則為 true。臨時槽不儲存到磁碟,並在錯誤或會話結束後自動刪除。

active bool

如果此槽當前正在流式傳輸,則為 true。

active_pid int4

為此槽流式傳輸資料的會話的程序 ID。NULL 表示不活動。

xmin xid

此槽需要資料庫保留的最舊事務。VACUUM 無法刪除由任何後續事務刪除的元組。

catalog_xmin xid

此槽需要資料庫保留的、影響系統目錄的最舊事務。VACUUM 無法刪除由任何後續事務刪除的目錄元組。

restart_lsn pg_lsn

此槽的消費者仍可能需要的、因此在檢查點期間不會被自動刪除的最舊 WAL 的地址(LSN),除非此 LSN 落後於當前 LSN 超過 max_slot_wal_keep_sizeNULL 表示此槽的 LSN 從未被保留過。

confirmed_flush_lsn pg_lsn

邏輯槽的消費者已確認接收資料的地址(LSN)。在此 LSN 之前提交的事務對應的資料不再可用。NULL 表示物理槽。

wal_status text

此槽宣告的 WAL 檔案的可用性。可能的值為:

  • reserved 表示宣告的檔案在 max_wal_size 範圍內。

  • extended 表示已超過 max_wal_size,但檔案仍被保留,無論是透過複製槽還是透過 wal_keep_size

  • unreserved 表示該槽不再保留所需的 WAL 檔案,其中一些將在下一個檢查點被刪除。這通常發生在 max_slot_wal_keep_size 設定為非負值時。此狀態可以返回到 reservedextended

  • lost 表示此槽不再可用。

safe_wal_size int8

可以寫入 WAL 的位元組數,這樣該槽就不會處於“lost”狀態。對於 lost 槽,以及當 max_slot_wal_keep_size-1 時,此值為 NULL。

two_phase bool

如果為解碼準備事務啟用了該槽,則為 true。對於物理槽,始終為 false。

two_phase_at pg_lsn

啟用解碼準備事務的地址(LSN)。對於 two_phase 為 false 的邏輯槽和物理槽,為 NULL

inactive_since timestamptz

槽變為不活動狀態的時間。NULL 表示槽當前正在流式傳輸。如果槽變為無效,此值將永遠不會更新。對於正在從主伺服器同步的備用槽(其 synced 欄位為 true),inactive_since 表示槽同步(參見 第 47.2.3 節)最近一次停止的時間。NULL 表示槽始終已同步。這有助於備用槽跟蹤同步中斷的時間。

conflicting bool

如果此邏輯槽與恢復衝突(因此現已失效),則為 true。當此列為 true 時,請檢查 invalidation_reason 列以瞭解衝突原因。對於物理槽,始終為 NULL

invalidation_reason text

槽失效的原因。它對邏輯槽和物理槽都設定。NULL 表示槽未失效。可能的值為:

  • wal_removed 表示所需的 WAL 已被刪除。

  • rows_removed 表示所需的行已被刪除。僅對邏輯槽設定。

  • wal_level_insufficient 表示主伺服器的 wal_level 不足以執行邏輯解碼。僅對邏輯槽設定。

  • idle_timeout 表示槽保持不活動狀態的時間超過了配置的 idle_replication_slot_timeout 持續時間。

failover bool

如果是啟用同步到備用伺服器以在故障轉移後從新主伺服器恢復邏輯複製的邏輯槽,則為 true。對於物理槽,始終為 false。

synced bool

如果是從主伺服器同步的邏輯槽,則為 true。在熱備用上,synced 列標記為 true 的槽既不能用於邏輯解碼,也不能手動刪除。此列的值對主伺服器沒有意義;主伺服器上的列值對所有槽預設為 false,但可能(如果從已提升的備用伺服器遺留)也為 true。


提交更正

如果您在文件中發現任何不正確、與您對特定功能的實際體驗不符或需要進一步澄清的內容,請使用此表單報告文件問題。