slony1
なんとなくできたかな。
合ってるのか不明。
マスタと複数スレーブを設定するメモ
master.sh
#!/bin/sh DBNAME=hoge CLUSTERNAME=hoge_replication DB1=$DBNAME_master HOST1=localhost RUSER=postgres slonik << _EOF_ cluster name=$CLUSTERNAME; node 1 admin conninfo = 'dbname=$DB1 host=$HOST1 user=$RUSER'; init cluster(id=1,comment='Master'); create set(id=1,origin=1,comment='All tables'); set add table (set id=1, origin=1, id=1, fully qualified name='public.hoge',comment='hoge'); _EOF_
slave.sh
#!/bin/sh DBNAME=hoge CLUSTER=$1 NODE=`expr ${CLUSTER##0} + 1` CLUSTERNAME=hoge_replication DB1=DBNAME_master DB2=DBNAME_$CLUSTER HOST1=localhost HOST2=localhost RUSER=postgres slonik << _EOF_ cluster name = $CLUSTERNAME; node 1 admin conninfo = 'dbname=$DB1 host=$HOST1 user=$RUSER'; node $NODE admin conninfo = 'dbname=$DB2 host=$HOST2 user=$RUSER'; store node (id=$NODE, comment='Slave'); store path (server=1,client=$NODE,conninfo='dbname=$DB1 host=$HOST1 user=$RUSER'); store path (server=$NODE,client=1,conninfo='dbname=$DB2 host=$HOST2 user=$RUSER'); store listen (origin=1, provider=1, receiver=$NODE); store listen (origin=$NODE, provider=$NODE, receiver=1); subscribe set (id=1,provider=1,receiver=$NODE,forward=no); _EOF_ #slon $CLUSTERNAME "dbname=$DB2 host=$HOST2 user=$RUSER"
slaveを連番で複数作成する時に使用。
$sh slave.sh 001
あとはslonをガシガシ立ち上げると。
細かいオプションとかまだ見てないよ。
うくく。