[pgsql-jp: 33189] Re: pgpool-1.2.3のreplication_strict
Tomoyuki Asakawa
tom @ asakawa.ne.jp
2004年 6月 10日 (木) 10:42:59 JST
あさかわです。
> 失礼しました.以下のパッチで直ると思います.
パッチをあてて、pgpoolを起動した場合
replication_strict = true
ではpgpoolが起動して利用できますが
replication_strict = false
では、pgpoolが起動しても
conecctionでエラーになります。
多分これは、サーバAとサーバBの
DATABASEのoidが違うからだと思いますがそうでしょうか?
このTESTのきっかけとなった
>> そもそもなんでFalseにしたいかと言うと
>>
>> PHPで語でいうと、INSERT後に、pg_last_oidすると、エラーになるからです。
>> (INSERTはrepricateされています)
これは。
pg_last_oidがエラーになっていたのではなく
その次の、select uid from xxxx where oid='$oid'
でエラーになっていました。
(select max(oid) from xxxx ではエラーにならない)
> これはpgpoolがoidのreplicationに対応できないのがそもそもの問題で、strict
> modeを外しても(マスターとスレーブのOIDが違うから)エラーになると思うの
> ですが、どうでしょうか?
やはり、上記が原因だとおもいます。
>
> これは関係ないですね.こちらではstrictモードでも
> 逆に言うと,マスタとセカンダリでpgpoolを経由しないでINSERTを直に行わな
> い限り,ずれないはずです(random()やcurrent_timestampなどを使った問い合
> わせを発行している関係で,INSERT件数がマスタとセカンダリで異なってくる
> ケースを除く).
>
との事でしたが。
サーバAとBの、DATABASEは
サーバAのDTABASEを。pg_dumpして
pgpoolを経由して、loadしたものですが
oidの値をみると、両サーバでちがっていました。
pgsql-jp メーリングリストの案内