選取您的 Cookie 偏好設定

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

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

RDS 適用於 Postgre 的 中的NOTICE訊息說明SQL

焦點模式
RDS 適用於 Postgre 的 中的NOTICE訊息說明SQL - Amazon Relational Database Service

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

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

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:

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時,會產生下列項目。

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

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

當自動清空關閉時

NOTICE 如果您的資料庫執行個體停用自動清空,postgres_get_av_diag()函數會產生下列項目:

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

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

注意

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

剩餘的交易數量非常低

當包裝清空即將到來NOTICE時,postgres_get_av_diag()函數會產生下列項目。當您的 Amazon RDS執行個體有 1 億筆交易,而沒有可能拒絕新的交易時,NOTICE就會發出此命令。

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在受影響的資料庫中手動啟動 ,以防止交易失敗。

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