在 RDS for PostgreSQL 中識別並解決積極的清空封鎖程式 - Amazon Relational Database Service

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

RDS for PostgreSQL 中識別並解決積極的清空封鎖程式

在 PostgreSQL 中,清空對於確保資料庫在回收儲存體時的運作狀態,並防止交易 ID 包裝問題至關重要。不過,有時候可以防止根據需要執行清空,這可能會導致效能降低、儲存膨脹,甚至影響資料庫執行個體透過交易 ID 包圍的可用性。因此,識別和解決這些問題對於最佳化資料庫效能和可用性至關重要。閱讀了解 Amazon RDS for PostgreSQL 環境中的自動清空,以進一步了解自動清空。

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 億筆舊的交易。