[pgsql-jp: 33246] Re: ロックしないvacuum
TANIDA Yutaka
tanida @ sra.co.jp
2004年 6月 15日 (火) 13:09:37 JST
谷田です。
On Tue, 15 Jun 2004 12:13:30 +0900
seiji yamamoto <yamamoto @ bitmap.co.jp> wrote:
> 今日こんなページがアップされてました。
> http://www.atmarkit.co.jp/flinux/special/ctl_rdbms/rdbms05.html
>
> ここの解説の中で、
> vacuum中はデータベースを使用できないとの事がかかれてました。
誤解です。データベースを止めなければいけないとかデータベースをロックする
とか、この点に対してはなぜか皆さん勘違いが多いですね。
正確なのは、「VACUUM FULLをするときは完全にテーブルをロックしてしまう」
です。PostgreSQLには、データベースを使用不可能にする仕組みはありません。
この手の誤解で一番楽しいのは「VACUUMのためにはデータベースを停止させなけ
ればならない」ですね。停止させたらVACUUMできません!
> 7.2からテーブルをロックせずvacuumが行われるので、
それは厳密には違います。ShareUpdateExclusiveLockという、専用のロックを取
得します。
> これに関しては、当てはまらないと私は思っていたのですが・・・
> 記憶が確かならばスキーマの変更は出来なかった気はしますが、
> 他のことは全てvacuum中でも可能だと思っています。
その理解であっています。
> なるべくマニュアルにも目を通したつもりですが、
> 何か私は勘違いをしているのでしょうか?
心配しなくても、勘違いは上記の記事のほうです。
--
TANIDA Yutaka <tanida @ sra.co.jp>
pgsql-jp メーリングリストの案内