支援的版本:目前版本 (17) / 16 / 15 / 14 / 13
開發版本:devel
不再支援的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4

52.19. pg_replication_slots #

pg_replication_slots 視窗提供資料庫叢集中目前存在的所有複寫槽的清單,以及它們目前的狀態。

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

表 52.19. 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 檔案,並且其中一些檔案將在下一個檢查點移除。此狀態可以返回 reservedextended

  • lost 表示已移除某些所需的 WAL 檔案,並且此槽不再可用。

只有在 max_slot_wal_keep_size 為非負數時才會看到最後兩種狀態。如果 restart_lsn 為 NULL,則此欄位為 null。

safe_wal_size int8

可以寫入 WAL 的位元組數,這樣此槽就不會有變成「lost」狀態的危險。對於遺失的槽,以及 max_slot_wal_keep_size-1 時,此值為 NULL。

two_phase bool

如果已啟用該槽以解碼預備交易,則為 True。對於實體槽,始終為 false。

inactive_since timestamptz

該槽變為非活動狀態以來的時間。如果目前正在使用該槽,則為 NULL。請注意,對於從主伺服器同步的備用槽(其 synced 欄位為 true),inactive_since 指示上次同步的時間(請參閱第 47.2.3 節)。

conflicting bool

如果此邏輯槽與復原發生衝突(因此現在已失效),則為 True。當此欄位為 true 時,請檢查 invalidation_reason 欄位以獲取衝突原因。對於實體槽,始終為 NULL。

invalidation_reason text

槽失效的原因。針對邏輯槽和實體槽都進行了設定。如果槽未失效,則為 NULL。可能的值為

  • wal_removed 表示已移除所需的 WAL。

  • rows_removed 表示已移除所需的列。僅針對邏輯槽進行了設定。

  • wal_level_insufficient 表示主要伺服器沒有足夠的 wal_level 來執行邏輯解碼。僅針對邏輯槽進行了設定。

failover bool

如果已啟用此邏輯槽以同步到備用伺服器,以便在容錯移轉後可以從新的主要伺服器恢復邏輯複寫,則為 True。對於實體槽,始終為 false。

synced bool

如果這是從主要伺服器同步過來的邏輯槽,則為 True。 在熱備援伺服器上,`synced` 欄位標記為 True 的槽既不能用於邏輯解碼,也不能手動刪除。 此欄位的值在主要伺服器上沒有意義;主要伺服器上所有槽的欄位預設值均為 False,但也可能為 True (如果這是從已升級的備用伺服器遺留下來的)。


提交更正

如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用此表格來回報文件問題。