[pgsql-jp: 33566] Re: pgpool 2.0.2 報告

nishio @ aileck.co.jp nishio @ aileck.co.jp
2004年 7月 9日 (金) 10:24:43 JST


西尾です。

>ログを見る限り,マスタとセカンダリのDB内容が異なっているようです.
>
>マスタとセカンダリの両方で直接以下の問い合わせを実行し,
>
>SELECT c.oid,
>   n.nspname,
>   c.relname
>FROM pg_catalog.pg_class c
>     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
>WHERE pg_catalog.pg_table_is_visible(c.oid)
>      AND c.relname ~ '^bbb$'
>ORDER BY 2, 3;
>
まず、テーブルの構成ですが、
CREATE TABLE aaa(i INTEGER,j TEXT);
で、作成し、データが
 i | j
---+---
 1 | A
 2 | B
 3 | C
(3 rows)

だけの簡単なものです。
それで、SQLでの問合せ結果ですが、
・マスタ
aaa=# SELECT c.oid,n.nspname,c.relname FROM pg_catalog.pg_class c
aaa-# LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
aaa-# WHERE pg_catalog.pg_table_is_visible(c.oid) AND c.relname ~ '^bbb$'
aaa-# ORDER BY 2, 3;
  oid   | nspname | relname
--------+---------+---------
 365464 | public  | bbb
(1 row)

・セカンダリ
aaa=# SELECT c.oid,n.nspname,c.relname FROM pg_catalog.pg_class c
aaa-# LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
aaa-# WHERE pg_catalog.pg_table_is_visible(c.oid) AND c.relname ~ '^bbb$'
aaa-# ORDER BY 2, 3;
  oid   | nspname | relname
--------+---------+---------
 329894 | public  | bbb
(1 row)
となります。

>こっちの方はログには出ていないようで,ちょっとわかりません.何か確実な
>再現方法はないでしょうか?
>--
>Tatsuo Ishii
>
こちらの環境では、psqlの\dや、"vacuumdb -p 9999 -a -z"を行うと必ずエラーが
発生するのですが。(ただし、"vacuumdb -p 9999 -z aaa"ではエラー無し)
別の方法として、マスタかセカンダリのデータをどちらかDELETEした後で、pgpoolで
で、SELECT文を投げてやるとエラーが発生し、繰り返すとプロセスが1つずつ消えてい
くのを確認しました。





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