選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

監控 Aurora PostgreSQL 邏輯複寫的寫入快取和邏輯槽 - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

監控 Aurora PostgreSQL 邏輯複寫的寫入快取和邏輯槽

監控邏輯複寫寫入快取並管理邏輯插槽,以提高 Aurora PostgreSQL 資料庫叢集的效能。下列是有關寫入快取和邏輯插槽的詳細資訊。

監控 Aurora PostgreSQL 邏輯複寫寫入快取

根據預設,Aurora PostgreSQL 版本 14.5、13.8、12.12 和 11.17 及更高版本會使用寫入快取來改善邏輯複寫的效能。如果沒有寫入快取,Aurora PostgreSQL 會在實作原生 PostgreSQL 邏輯複寫程序時使用 Aurora 儲存層。方法是將WAL資料寫入儲存體,然後從儲存體讀取資料以解碼資料,然後將 (複寫) 傳送到其目標 (訂閱者)。這可能會在 Aurora PostgreSQL 資料庫叢集的邏輯複寫期間產生瓶頸。

寫入快取可將對 Aurora 儲存層的依賴降至最低。Aurora PostgreSQL 使用緩衝區快取邏輯WAL串流,以便在複寫過程中使用,而不是持續寫入和讀取此層,因此不需要存取磁碟。此緩衝區是邏輯複寫中使用的原生 PostgreSQL 快取,並在 Aurora PostgreSQL 資料庫叢集參數中識別為 rds.logical_wal_cache

當您將邏輯複寫與 Aurora PostgreSQL 資料庫叢集 (適用於支援寫入快取的版本) 搭配使用時,您可以監控快取命中率,以查看其對您的使用案例的運作狀態。若要這麼做,請使用 連線至 Aurora PostgreSQL 資料庫叢集的寫入執行個體,psql然後使用 Aurora 函數 aurora_stat_logical_wal_cache,如下列範例所示。

SELECT * FROM aurora_stat_logical_wal_cache();

此函數會傳回如下的輸出。

name | active_pid | cache_hit | cache_miss | blks_read | hit_rate | last_reset_timestamp -----------+------------+-----------+------------+-----------+----------+-------------- test_slot1 | 79183 | 24 | 0 | 24 | 100.00% | 2022-08-05 17:39... test_slot2 | | 1 | 0 | 1 | 100.00% | 2022-08-05 17:34... (2 rows)

為了可讀性,last_reset_timestamp 值已縮短。如需此函數狀態的詳細資訊,請參閱 aurora_stat_logical_wal_cache

Aurora PostgreSQL 提供下列兩個用於監控寫入快取的函數。

如果您發現自動調整的WAL快取大小不足以容納工作負載,您可以rds.logical_wal_cache手動變更 的值。考慮下列各項:

  • rds.logical_replication 參數停用時, rds.logical_wal_cache 會設定為零 (0)。

  • 啟用 rds.logical_replication 參數時, rds.logical_wal_cache 的預設值為 16 MB。

  • rds.logical_wal_cache 參數是靜態的,需要重新啟動資料庫執行個體,變更才會生效。此參數以 8 Kb 區塊定義。請注意,任何小於 32 Kb 的正值都會視為 32 Kb。如需詳細資訊,wal_buffers請參閱 PostgreSQL 文件中的預先寫入日誌

管理 Aurora Postgre 的邏輯插槽SQL

pg_replication_origin_status 檢視中擷取串流活動。若要查看此檢視的內容,您可以使用 pg_show_replication_origin_status() 函數,如下所示:

SELECT * FROM pg_show_replication_origin_status();

您可以使用下列SQL查詢取得邏輯插槽的清單。

SELECT * FROM pg_replication_slots;

若要捨棄邏輯槽,請使用 pg_drop_replication_slot 搭配該槽的名稱,如下列命令中所示。

SELECT pg_drop_replication_slot('test_slot');
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。