2007年12月16日
PostgreSQLでWARNING: skipping “pg_*” — only table or database owner can vacuum it
タグ: データベース, postgresql
PostgreSQLでvacuumをする際に下記のようなワーニングがでていた。
WARNING: skipping "pg_authid" --- only table or database owner can vacuum it WARNING: skipping "pg_tablespace" --- only table or database owner can vacuum it WARNING: skipping "pg_pltemplate" --- only table or database owner can vacuum it WARNING: skipping "pg_shdepend" --- only table or database owner can vacuum it WARNING: skipping "pg_shdescription" --- only table or database owner can vacuum it WARNING: skipping "pg_database" --- only table or database owner can vacuum it WARNING: skipping "pg_auth_members" --- only table or database owner can vacuum it
調べてみたらバージョン8.1からグローバルテーブルの情報を各DBから参照できるようになったようで、それが原因のようだ。
リリース8.1
PostgreSQLでは、グローバルテーブル(ユーザ、データベース、テーブル空間)の情報を複数のデータベースから参照することができます。
つまり、このバキュームを行っているユーザーはこのDBの所有者なのだが、このDBの中にはグローバルテーブルも含まれてしまっていて、このグローバルテーブルの所有者はスーパーユーザーなので、バキュームはできませんよ、ということ。つまり、このワーニングがでていても問題なしということで。
タグデータベース postgresql


