[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 メーリングリストの案内