Doge log

Abby CTO 雑賀 力王のオフィシャルサイトです

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をガシガシ立ち上げると。
細かいオプションとかまだ見てないよ。
うくく。