Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Identifizieren und lösen Sie aggressive Vakuumblocker in
In PostgreSQL ist das Vacuuming von entscheidender Bedeutung, um die Integrität der Datenbank sicherzustellen, da dadurch Speicherplatz zurückgewonnen und Transaktions-ID-Wraparound-Probleme vermieden werden.
Diese postgres_get_av_diag()
Funktion hilft dabei, Probleme zu identifizieren, die den aggressiven Vakuumprozess entweder verhindern oder verzögern. Es werden Vorschläge bereitgestellt, zu denen Befehle zur Behebung des Problems gehören können, wenn es identifiziert werden kann, oder Anleitungen für weitere Diagnosen, wenn das Problem nicht identifiziert werden kann. Aggressive Vakuumblocker werden gemeldet, wenn das Alter den von RDS festgelegten Schwellenwert für die automatische Vakuumierung von 500 Millionen Transaktionen überschreitet. IDs
Wie alt ist die Transaktions-ID?
Die age()
Funktion für die Transaktion IDs berechnet die Anzahl der Transaktionen, die seit der ältesten nicht eingefrorenen Transaktions-ID für eine Datenbank (pg_database.datfrozenxid
) oder Tabelle (pg_class.relfrozenxid
) stattgefunden haben. Dieser Wert gibt die Datenbankaktivität seit dem letzten aggressiven Vakuumvorgang an und hebt die wahrscheinliche Arbeitslast für bevorstehende VACUUM-Prozesse hervor.
Was ist ein aggressives Vakuum?
Bei einem aggressiven VACUUM-Vorgang werden alle Seiten in einer Tabelle umfassend gescannt, einschließlich der Seiten, die normalerweise bei einem normalen Vorgang übersprungen werden. VACUUMs Dieser gründliche Scan zielt darauf ab, Transaktionen, die IDs sich ihrem Höchstalter nähern, „einzufrieren“ und so eine Situation, die als Transaktions-ID-Wraparound
postgres_get_av_diag()
Um Blocker melden zu können, muss der Blocker mindestens 500 Millionen Transaktionen alt sein.