[pgsql-jp: 35968] Re:VACUUM中にCOPYが終わらない

Kazuo Kojima kojima @ lucida.com
2005年 9月 8日 (木) 11:25:49 JST


小島です。
初心者なので、リプライ方法が分からず、投稿してしまいましたので
再度投稿します。

様々なご意見ありがとうございます。

> 単純に処理に時間がかかっていると仮定して・・・
    この問題が発生しない時(発生するのが10数日に1ど程度ですが・・)
    のコピーはせいぜい30秒程度で終了しています。
    今回、処理を途中でキャンセルしないで続行したところ3日間
    固まったような状況でした。


>    コピーとバキュームが同時に行われないようにする運用は
>    検討できないのでしょうか。

    はい。システムが24時間運転が原則でありコピーを
    VACUUM中止めることはできないのです。

>> -----Original Message-----
>> 2.毎午前0時に前日のデータを削除します。(約1千万件)

>    とありますが、これが「該当テーブルの全データ削除」ならば
>    DELETE+バキューム
>    ではなく、
>    DropTable+CreateTable(+CreateIndex)

    すみません。記述が誤ってました。削除するのは前日ではなく、
    前々日のデータで全体の半分を削除することになっています。
    (つまり、1日約1千万件のデータを追加してMAX2千万件になり
      毎深夜に前々日の1千万件データを削除するシステムになります)
    したがって、DROPTABLE+CreateTableやTRUNCATEは
    出来ないのです。

    現在は、INDEXを削除することで安定した稼動を続けているのですが、
    原因が分からない以上、この状態での運用にも不安があります。
    また、将来、INDEXがどうしても必要なときに同じ現象がでるのを
    避けたいと思っています。

    回避方法としては、TRUNCATEで削除できるような仕組みへの変更
    或いは、現在実施しているINDEXの削除などがあるとは思います。

    本質的な原因が知りたいのです。
    例えば、「VACUUMのインデックの再利用化の仕組みとコピー処理時
    のインデックスの生成の仕組みから何らかの原因でハングしてしまう
    場合がある」など。

    どうぞよろしくお願いします。




 






pgsql-jp メーリングリストの案内