本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 RDS for PostgreSQL 中識別並解決積極的清空封鎖程式
在 PostgreSQL 中,清空對於確保資料庫在回收儲存體時的運作狀態,並防止交易 ID 包裝
postgres_get_av_diag()
函數有助於識別防止或延遲積極清空進度的問題。提供建議,其中可能包括用於解決可辨識問題之問題的命令,或用於無法辨識問題之進一步診斷的指引。當存留期超過 RDS 的自適應自動清空閾值 5 億筆交易 IDs 時,就會報告積極的清空封鎖程式。
交易 ID 的存留期為何?
交易 IDs 的 age()
函數會計算自資料庫 (pg_database.datfrozenxid
) 或資料表 () 最舊的未凍結交易 ID 以來發生的交易數量pg_class.relfrozenxid
。此值表示自上次積極清空操作以來的資料庫活動,並強調近期 VACUUM 程序的可能工作負載。
什麼是積極清空?
積極的 VACUUM 操作會全面掃描資料表中的所有頁面,包括在一般 VACUUMs 期間通常會略過的頁面。此徹底掃描旨在「凍結」接近其最長存留期的交易 IDs,有效防止稱為交易 ID 包裝
若要postgres_get_av_diag()
讓 報告封鎖程式,封鎖程式必須至少有 5 億筆舊的交易。