[pgsql-jp: 35826] Slony-Iでカスケード接続する設定

根岸 智幸 tomoyu-n @ tokyo-cafe.com
2005年 8月 12日 (金) 19:13:09 JST


ライブドアの根岸と申します。

Slonyの設定についてご相談です。

Apache-PHP-PostgreSQLのWebアプリのバックエンドで
マスターDBに4台のスレーブDBをカスケード接続し 
ています。

Master - Slave01 - Slave02 - Slave03 - Slave04

下記のような設定で、一応動いているのですが、
どうも、store pathとstore listenが無駄に多いようで
気になっています。
また、Masterのロードアベレージが常に高いのも
悩みの種です。

Slonyで複数台をカスケード接続されているかたがいたら、
教えていただきたく、お願いします。

slmaster.sh
=======================================
#!/bin/sh
CLUSTERNAME=cluster01
DB=item
HOST1=dbm1
HOST2=dbs1
HOST3=dbs2
HOST4=dbs3
HOST5=dbs4
RUSER=postgres
slonik <<EOF
cluster name=$CLUSTERNAME;
node 1 admin conninfo = 'dbname=$DB host=$HOST1 user=$RUSER';
node 2 admin conninfo = 'dbname=$DB host=$HOST2 user=$RUSER';
node 3 admin conninfo = 'dbname=$DB host=$HOST3 user=$RUSER';
node 4 admin conninfo = 'dbname=$DB host=$HOST4 user=$RUSER';
node 5 admin conninfo = 'dbname=$DB host=$HOST5 user=$RUSER';
init cluster (id=1, comment='Master');
create set (id=1, origin=1, comment='tables');
set add table (set id=1,origin=1,id=1, fully qualified  
name='public.area',comment='area');
set add table (set id=1,origin=1,id=2, fully qualified  
name='public.category',comment='category');
set add table (set id=1,origin=1,id=3, fully qualified  
name='public.item',comment='item');
store node (id=2,comment='Slave DB#1');
store node (id=3,comment='Slave DB#2');
store node (id=4,comment='Slave DB#3');
store node (id=5,comment='Slave DB#4');
#
store path (server=1,client=2,conninfo='dbname=$DB host=$HOST1 user= 
$RUSER');
store path (server=1,client=3,conninfo='dbname=$DB host=$HOST1 user= 
$RUSER');
store path (server=1,client=4,conninfo='dbname=$DB host=$HOST1 user= 
$RUSER');
store path (server=1,client=5,conninfo='dbname=$DB host=$HOST1 user= 
$RUSER');
#
store path (server=2,client=1,conninfo='dbname=$DB host=$HOST2 user= 
$RUSER');
store path (server=2,client=3,conninfo='dbname=$DB host=$HOST2 user= 
$RUSER');
store path (server=2,client=4,conninfo='dbname=$DB host=$HOST2 user= 
$RUSER');
store path (server=2,client=5,conninfo='dbname=$DB host=$HOST2 user= 
$RUSER');
#
store path (server=3,client=1,conninfo='dbname=$DB host=$HOST3 user= 
$RUSER');
store path (server=3,client=2,conninfo='dbname=$DB host=$HOST3 user= 
$RUSER');
store path (server=3,client=4,conninfo='dbname=$DB host=$HOST3 user= 
$RUSER');
store path (server=3,client=5,conninfo='dbname=$DB host=$HOST3 user= 
$RUSER');
#
store path (server=4,client=1,conninfo='dbname=$DB host=$HOST4 user= 
$RUSER');
store path (server=4,client=2,conninfo='dbname=$DB host=$HOST4 user= 
$RUSER');
store path (server=4,client=3,conninfo='dbname=$DB host=$HOST4 user= 
$RUSER');
store path (server=4,client=5,conninfo='dbname=$DB host=$HOST4 user= 
$RUSER');
#
store path (server=5,client=1,conninfo='dbname=$DB host=$HOST5 user= 
$RUSER');
store path (server=5,client=2,conninfo='dbname=$DB host=$HOST5 user= 
$RUSER');
store path (server=5,client=3,conninfo='dbname=$DB host=$HOST5 user= 
$RUSER');
store path (server=5,client=4,conninfo='dbname=$DB host=$HOST5 user= 
$RUSER');
#
store listen (origin=1,provider=1,receiver=2);
store listen (origin=1,provider=1,receiver=3);
store listen (origin=1,provider=1,receiver=4);
store listen (origin=1,provider=1,receiver=5);
#
store listen (origin=2,provider=2,receiver=1);
store listen (origin=2,provider=2,receiver=3);
store listen (origin=2,provider=2,receiver=4);
store listen (origin=2,provider=2,receiver=5);
#
store listen (origin=3,provider=3,receiver=1);
store listen (origin=3,provider=3,receiver=2);
store listen (origin=3,provider=3,receiver=4);
store listen (origin=3,provider=3,receiver=5);
#
store listen (origin=4,provider=4,receiver=1);
store listen (origin=4,provider=4,receiver=2);
store listen (origin=4,provider=4,receiver=3);
store listen (origin=4,provider=4,receiver=5);
#
store listen (origin=5,provider=5,receiver=1);
store listen (origin=5,provider=5,receiver=2);
store listen (origin=5,provider=5,receiver=3);
store listen (origin=5,provider=5,receiver=4);
EOF
=======================================



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