[pgcluster: 282] ビューのレプリケートについて

miyazawa makoto miyazawa_pgcluster_mailling @ yahoo.co.jp
2004年 5月 19日 (水) 20:47:35 JST


.現在、Solaris8(OS5.8)2台でPGClusterの検証を行っておりま
す、宮澤と申します。

さて、ご相談させていただきたい現象なのですが
View テーブル内で シーケンスを取得することを行いたいので
すがうまくレプリケートされません。

いろいろ試してみたのですが、
どうにもわからず皆様のお知恵をお借りできたらと思い
投稿させていただきました。
長文で申し訳ありませんが、よろしくお願いいたします。

【環境】
実機環境:Solaris8(sparc、OS5.8)  2台
サーバ構成:
PGClusterバージョン:PGReplicate version [1.0.6cv13]
0系…レプリケーションサーバ(マスタ)+クラスタサーバ(マス
タ)
1系…レプリケーションサーバ+クラスタサーバ
ロードバランサは未インストール、未設定

【やりたいこと】
以下のテーブル、ビューを作成し、ビューから各シーケンスのnextval
を取得する。

create sequence test1
    minvalue  1
    maxvalue  9223372036854775807
    start     1
;
create sequence test2
    minvalue  1
    maxvalue  9223372036854775807
    start     1
;
create sequence test3
    minvalue  1
    maxvalue  9223372036854775807
    start     1
;
create table s_test(
    id varchar(1024),
    constraint p_key_test primary key(id)
)
;
create view test_seqview
    as select id,
       nextval(id) as currentvalue   
    from s_test
;
insert into s_test (id) values('test1');
insert into s_test (id) values('test2');
insert into s_test (id) values('test3');

【現象】
ビューから取得した場合、1度のみしかレプリケートされない
。
それ以後、同期をとらずにローカルのシーケンスのnextvalが
取得される。

【詳細】
0系で以下を行い、レプリケートされていることを確認
select setval('test1',200);
select setval('test2',200);
select setval('test3',200);

select nextval('test1');
select nextval('test2');
select nextval('test3');

0系で以下を行った
select currentvalue from test_seqview where id = 'test1'
すると、1系でも表示されたシーケンス番号でレプリケートさ
れたことを確認。

さらに0系で以下を行ってもレプリケートされていない。
select currentvalue from test_seqview where id = 'test1'

【質問】
このようなビューでの更新系クエリーはそもそもレプリケート
できるのでしょうか?


__________________________________________________
Do You Yahoo!?
http://bb.yahoo.co.jp/




pgcluster メーリングリストの案内