問題があり、アドバイスが必要です。私は普段は開発者ですが、会社での最近の人事異動により、IT 担当者は私だけになりました。そのため、多くの未知の領域に分岐する必要があり、本当に助けが必要です。
postgres 8.3 を実行しています。データベースは、トランザクション ID のラップアラウンドを防ぐために、ラージ オブジェクト テーブル (pg_catalog.pg_large_object) で AUTO_VACUUM を実行しようとしています。基本的な意味は理解できたと思います。問題は、このテーブルが 750G で 4 億 5200 万行あることです。AUTO_VACUUM はディスクに大量の書き込みを行っており、ディスク領域を食い尽くしています (昨日、1TB の最後の 250GB を消費しました)。緊急停止の後、1100 GB のスペースと 100 GB の空き容量でバックアップして実行しています。ただし、postgres がバックアップされて実行されると、AUTO_VACUUM プロセスが再び開始されました。トランザクションを強制終了すると (これはお勧めできません)、再起動するだけです。
だからここに私の質問があります:
1) そのテーブルの場合、AUTO_VACUUM プロセスを完了するにはどのくらいのスペースが必要ですか? これはどうやって判断するのですか?
2) この状況を処理するようにサーバーを構成するより良い方法はありますか?
3) 2 に「いいえ」の場合、この問題をどのように修正することを提案しますか?
私は DBA ではなく、Linux サーバーの管理経験もありません。開発者として多くの帽子をかぶるよう求められているだけです。DBA コンサルタントに問題の解決を依頼しようとしていますが、会社は反対しています。私の最善の努力にもかかわらず、彼らは問題の深刻さを理解していないようです.
提案?コメント? アドバイスやガイダンスをいただければ幸いです。さらに情報が必要な場合は、お知らせください。