2
TOASTテーブルの成長が制御不能-FULLVACは何もしません
最近、自動バキューム機能を利用して他の30個のPGSQLサーバーと連携するために、PostgreSQL 8.2.11サーバーを8.4にアップグレードしました。これは、ハードウェアを管理する別のITグループによって行われたため、他のアップグレードを選択する余地はほとんどありません(しばらくの間、9以上は表示されません)。サーバーは非常に閉じた環境(孤立したネットワーク、限られたroot権限)に存在し、RHEL5.5(i686)で実行されます。アップグレード後、データベースは常に1日あたり5〜6 GBに成長しています。通常、データベース全体では、約20GBです。現在、それは〜89GBです。同等のデータベースを実行し、実際にサードパーティのアプリケーションを介してレコードを相互に同期するサーバーがいくつかあります(1つは内部の仕組みにアクセスできません)。他のデータベースは、本来あるべきように〜20GBです。 次のSQLを実行すると、特定のテーブル、具体的にはそのTOASTテーブルに問題があることはかなり明白です。 SELECT nspname || '.' || relname AS "relation", pg_size_pretty(pg_relation_size(C.oid)) AS "size" FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) WHERE nspname NOT IN ('pg_catalog', 'information_schema') ORDER BY pg_relation_size(C.oid) DESC LIMIT 20; 生成されるもの: 関係| サイズ ------------------------------------ + --------- pg_toast.pg_toast_16874 | 89 GB 数00.warmstates | …