[pgsql-jp: 36581] pgpoolでsetvalを使うと・・・・

大和速記 斉藤 m-saitoh @ yamatosokki.co.jp
2005年 12月 19日 (月) 17:41:20 JST


斎藤と申します。

pgpoolでreplication_modeを使用して2台のサーバにロードバランスを
行っております。

OS         : Gentoo 2.6.13
PostgreSQL : 8.0.3
pgpool     : 2.6.3

pgpool.confファイルの主な部分は以下の通りです。

listen_addresses = '*'
port = 5432
backend_host_name = 'server01'
backend_port = 5431
secondary_backend_host_name = 'server02'
secondary_backend_port = 5431
num_init_children = 16
max_pool = 4
replication_mode = true
replication_strict = true
replication_timeout = 5000
load_balance_mode = true
weight_master = 0.5
weight_secondary = 0.5
replication_stop_on_mismatch = true
health_check_timeout = 20
health_check_period = 3600
insert_lock = true

pgpool自体は、server01のport:5432で動いております。

そこで質問なのですが、
server03(pg_poolを使用していないpostgresql)からデータを
以下のコマンドでダンプしたものをpgpoolに渡す。

pg_dump -p 5432 -h server03 database | psql -p 5432 -h server01 database

するとデータはちゃんと入るのですがsetvalの値がmasterかsecondary
片方にしか反映されません。

SELECT pg_catalog.setval(pg_catalog.pg_get_serial_sequence('t_user', 'user_id'), 4, true);

過去ログを見ると"SELECT"という文字が先頭にあるとmasterかsecondary
片方にしかSQLを投げないようなことが書いてあったのですが、
これのせいなのでしょうか?

過去ログを検索させていただいたのですが、同じような現象を
見つけられませんでした。
みなさんはこんなことしないのでしょうか?

pg_dump -p 5432 -h server03 database | psql -p 5431 -h server01 database

として、この後 rsync なりを掛ければ問題ないのですが
みなさんはこのようなやり方ですか?
ご助言をお願いいたします。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
(株)大和速記情報センター
                開発室  斎藤  賢史
TEL:03-3595-3211  FAX:03-3595-3231
E-Mail : m-saitoh @ yamatosokki.co.jp





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