[pgpool-general-jp: 593] Re: オンラインリカバリを実施するとノード間のシーケンスがずれる

Jun Kuriyama kuriyama+ml @ s2factory.co.jp
2009年 8月 11日 (火) 11:14:14 JST


2009/08/03 18:39 に <kamisima @ vips.co.jp> さんは書きました:
> [環境]
> pgpool-2:2.2.2
> postgreSql:8.3.7
> OS:CentOS5
> 2ノードのレプリケーションモード

 まだちゃんと追えていないのですが、私も最近同じような現象に遭遇しました。

 上記との違いは OS が FreeBSD 7.1 なことくらいです。

 PostgreSQL 側で statement log を出すようにした時に、LOCK TABLE がちゃんと
出ていることは確認しました。


> たとえば、以下のようなテーブルを作成します。
> test_tab(
>  col1  bigserial,
>  col2  varchar2(10) )
> そうすると、test_tab_col1_seqというシーケンスが自動的に作成されて、
> col1にはtest_tab_col1_seqから連番が振られていきます。
> 縮退運転中、正常ノードのcol1が500まで進んで、障害ノードのほうは400で止まっているとします。
> この状態でインサートを継続したままオンラインリカバリを実行します。
> リカバリ完了後テーブルを確認すると、
> 途中まで(たとえば600まで)は期待通り同期されているのに、
> 途中から障害ノードのシーケンスが中抜きされるというような現象が発生します。
> (同じデータでも正常ノードでは601、障害ノードでは610が振られる)

 これって一トランザクションの中で INSERT し続けているのでしょうか? それとも INSERT
一つごとに COMMIT される形でしょうか?


-- 
Jun Kuriyama <kuriyama @ FreeBSD.org> // FreeBSD Project
         <kuriyama @ s2factory.co.jp> // S2 Factory, Inc.


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