RDS for PostgreSQL 中的 NOTICE 訊息說明 - Amazon Relational Database Service

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

RDS for PostgreSQL 中的 NOTICE 訊息說明

postgres_get_av_diag() 函數提供下列 NOTICE 訊息:

當存留期尚未達到監控閾值時

postgres_get_av_diag() 用於識別封鎖程式的監控閾值預設為 5 億筆交易。如果 postgres_get_av_diag()產生下列 NOTICE,則表示交易存留期尚未達到此閾值。

NOTICE: postgres_get_av_diag() checks for blockers that prevent aggressive vacuums only, it does so only after exceeding dvb_threshold which is 500,000,000 and age of this PostgreSQL cluster is currently at 2.
未連線至具有最舊交易 ID 存留期的資料庫

postgres_get_av_diag() 函數會在連接至具有最舊交易 ID 存留期的資料庫時,提供最準確的輸出。所報告之交易 ID 存留期最早的資料庫,postgres_get_av_diag()將與您案例中的「my_database」不同。如果您未連線到正確的資料庫,則會產生下列 NOTICE:

NOTICE: You are not connected to the database with the age of oldest transaction ID. Connect to my_database database and run postgres_get_av_diag() for accurate reporting.

連接具有最舊交易存留期的資料庫非常重要,原因如下:

  • 識別暫存資料表封鎖程式:由於暫存資料表的中繼資料專屬於每個資料庫,因此它們通常會在建立它們的資料庫中找到。不過,如果暫時資料表剛好是最熱門的封鎖程式,並且位於具有最舊交易的資料庫中,則可能會誤導。連接到正確的資料庫可確保正確識別暫存資料表封鎖程式。

  • 診斷慢清空:索引中繼資料和資料表計數資訊是資料庫特定的,是診斷慢清空問題的必要項目。

依存留期顯示最舊交易的資料庫位於 rdsadmin 或 template0 資料庫

在某些情況下, rdsadmintemplate0 資料庫可能會識別為具有最舊交易 ID 存留期的資料庫。如果發生這種情況, postgres_get_av_diag()將發出下列通知:

NOTICE: The database with the age of oldest transaction ID is rdsadmin or template0, reach out to support if the reported blocker is in rdsadmin or template0.

確認列出的封鎖程式不是來自這兩個資料庫。如果報告封鎖程式出現在 rdsadmin或 中template0,請聯絡 支援,因為這些資料庫無法使用者存取且需要介入。

rdsadmintemplate0 資料庫不太可能包含頂端封鎖程式。

當積極清空已在執行時

postgres_get_av_diag() 函數旨在報告積極清空程序何時執行,但只會在清空作用中至少 1 分鐘後觸發此輸出。此刻意延遲有助於降低誤報的機會。透過等待, 函數可確保僅報告有效且重要的清空,進而更準確且可靠地監控清空活動。

postgres_get_av_diag() 函數偵測到一或多個進行中的積極清空時,會產生下列通知。

NOTICE: Your database is currently running aggressive vacuum to prevent wraparound, monitor autovacuum performance.

如 NOTICE 所示,繼續監控清空的效能。如需積極清空的詳細資訊,請參閱 積極清空 (以防止包裝) 正在執行

當自動清空關閉時

如果資料庫執行個體上已停用自動清空,postgres_get_av_diag()函數會產生下列通知:

NOTICE: Autovacuum is OFF, we strongly recommend to enable it, no restart is necessary.

自動清空是 RDS for PostgreSQL 資料庫執行個體的重要功能,可確保順暢的資料庫操作。它會自動移除舊的資料列版本、回收儲存空間,並防止資料表膨脹,有助於保持資料表和索引的效率,以獲得最佳效能。此外,它可以防止交易 ID 包裝,這會停止 Amazon RDS 執行個體上的交易。停用自動清空可能會導致資料庫效能和穩定性的長期下降。我們建議您隨時將其保留。如需詳細資訊,請參閱了解 RDS for PostgreSQL 環境中的自動清空

注意

關閉自動清空不會停止積極的清空。這些仍會在您的資料表達到autovacuum_freeze_max_age閾值時發生。

剩餘的交易數量非常低

當包裝清空即將到期時,postgres_get_av_diag()函數會產生下列通知。當您的 Amazon RDS 執行個體有 1 億筆交易未可能拒絕新交易時,就會發出此通知。

WARNING: Number of transactions remaining is critically low, resolve issues with autovacuum or perform manual VACUUM FREEZE before your instance stops accepting transactions.

您需要立即採取動作,以避免資料庫停機。您應該密切監控您的清空操作,並考慮在受影響的資料庫VACUUM FREEZE上手動啟動 ,以防止交易失敗。