[pgsql-jp: 41485] Re: autovacuumの実行について

Yoshiyuki Asaba ysyk.asaba @ gmail.com
2013年 8月 11日 (日) 10:22:30 JST


浅羽です。

(2)「vacuumdb  -U ユーザID -p ポート番号 -a -z」の実行でトランザクションIDの周回が防止
      できているでしょうか

こちらの「ユーザID」で指定されているユーザはスーパーユーザでしょうか?
vacuumdb実行したときに以下のような警告が出ていないか確認してみてください。

WARNING:  skipping "pg_database" --- only superuser can vacuum it

vacuumdbの前後で select datname, age(datfrozenxid) from pg_database;の実行をしてみて、
vacuum後にageの値が小さくなっているか確認してみてください。
(template0は無視して大丈夫です)


2013年8月9日 12:59  <masakazu.matsuura.fy @ hitachi-solutions.com>:
> お世話になります。松浦と申します。
>
> 現在,PostgreSQLで下記の問題が発生しています。解決方法等ご存知でしたら
> ご教示ください。
>
> <現象>
> PostgreSQLの設定で,autovacuumの使用をoff(autovacuum = off)にし,
> 定期的にvacuumdbを実行しているにも関わらず,autovacuumが実行されることがある。
>
> <環境>
> バージョン:PostgreSQL8.3.5
> OS:Windows Server 2003 R2
>
> <問い合わせ内容>
> PostgreSQLのマニュアルに「autovacuumの機能が無効であったとしてもシステムは,
> トランザクションIDの周回を防止する必要があれば、自動バキュームプロセスを起動する」
> とあるため,autovacuumの使用をoff(autovacuum = off)の場合でも,autovacuumが
> 実行されることは認識しています。
> しかし,定期的にvacuumdbを実行し,トランザクションIDの周回が起きないようにしている
> (トランザクションIDがautovacuum_freeze_max_age(2億)に達する前)にも関わらず,
> autovacuumが実行されてしまいます。
> vacuumdbは,下記のオプションをつけて実行しています。
>
> <vacuumdb実行オプション>
> vacuumdb  -U ユーザID -p ポート番号 -a -z
>
> 現在,下記について情報をお持ちであればご教示頂けませんでしょうか。
>
> (1)トランザクションIDの周回を防止するために以外にautovacuumの使用をoff(autovacuum = off)
>       の場合でも,autovacuumが実行される条件はあるでしょうか
> (2)「vacuumdb  -U ユーザID -p ポート番号 -a -z」の実行でトランザクションIDの周回が防止
>       できているでしょうか
> (3)その他にトランザクションIDの周回を防止したうえで,autovacuumの実行を完全に抑止する方法は
>       ないでしょうか
>
> 以上,よろしくお願い致します。



-- 
Yoshiyuki Asaba
ysyk.asaba @ gmail.com


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