Slony-I 1.2でカスケード接続をやってみた
Slony-I ( http://www.slony.info/ )はPostgreSQLで利用できる、マスター・スレーブ型のレプリケーション・ソフトで、既に何度か取り上げている。( http://d.hatena.ne.jp/aaabbb_200904/20090625/1245941363 )
Slony-Iでは、カスケード接続(単純なマスタースレーブではなく、スレーブの下に更にスレーブをつける構成 )もできるのだが、今まで試したことが無かったので、試してみた。
Slony-Iの設定には、いつも slonik_* のスクリプトを使用しているのだが、スクリプトを使用するためには、slon_tools.conf を作成する必要がある。 slon_tools.conf は、ノード数、レプリケートするDB数に限らず、1つのファイルで複数のレプリケートを設定できるが、ここでは、単一のセット(1つのDBに属するテーブルの集合) を repldb1 ==> repldb2 ==> repldb3 の順で接続した。
カスケード接続と通常の接続で異なるのは、 add_node のnode3の部分だけで、
parent => 2,
が加わっていることだけである。
add_node(node => 1, host => '127.0.0.1', dbname => 'repldb1', port => 5432, user => 'replusr1', password => 'xxx'); add_node(node => 2, host => '127.0.0.1', dbname => 'repldb2', port => 5432, user => 'replusr1', password => 'xxx'); add_node(node => 3, parent => 2, host => '127.0.0.1', dbname => 'repldb3', port => 5432, user => 'replusr1', password => 'xxx');
レプリケーションを始めるには、通常の接続と同様、(setの番号を1とする)
$ slonik_init_cluster | slonik $ slonik_create_set 1 | slonik $ slonik_subscribe_set 1 2 | slonik $ slonik_subscribe_set 1 3 | slonik $ slon_start 1 $ slon_start 2 $ slon_start 3
で実行出来る。