PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie entferne ich nicht verwendete temporäre Dateien aus von Google Cloud SQL verwaltetem Postgres?

Gemäß der PostgreSQL Dokumentation , das Feld temp_bytes ist definiert als:

Das bedeutet, dass die Zahl die Summe der temporären Dateigrößen seit der Erstellung ist der Datenbank (oder seit dem letzten pg_stat_reset()) und nicht die aktuelle Nutzung der temporären Datei.

Die aktuelle Nutzung könnte mithilfe der „Dateifunktionen“ in Nicht-Cloud-Datenbankinstanzen ermittelt werden, aber in Cloud SQL kann ein normaler Benutzer select pg_ls_dir('base/pgsql_temp') nicht ausführen da dies nur Superusern vorbehalten ist.

Wie Sie sagten, ist Cloud SQL ein verwalteter Dienst, daher gibt es derzeit keine Möglichkeit, die aktuelle Nutzung temporärer Dateien anzuzeigen.

Eine Sache, die die angezeigte Zahl definitiv löschen wird, ist pg_stat_reset(), obwohl es, wie bereits gesagt, nicht um die aktuelle Nutzung temporärer Dateien geht, sondern um eine historische Gesamtzahl;

Eine Sache, die temporäre Dateien garantiert bereinigt, ist ein Neustart der Datenbankinstanz, als Teil des Startvorgangs wird base/pgsql_temp gelöscht Verzeichnis.