[pgsql-jp: 35135] Re: slonyでのnode 追加が出来ません。

TANIGUCHI Daisuke taniguchi @ yumemi.co.jp
2005年 3月 25日 (金) 21:09:42 JST


谷口と申します.

Shiro wrote:
> slonyにて、一度、構築したレプリケーションに、もう一台サーバー(node)を
> 追加したいのですが、うまく設定できません。

であれば,テーブルの追加などは後でやることにして
nodeの追加だけ行えば良いと思います.

cluster name = <CLUSTER NAME>;
#既存のMASTERノード
node 1 admin conninfo = 'dbname=ga host=<MASTER NODE> user=postgres';
#既存のSLAVEノード(1)
node 2 admin conninfo = 'dbname=ga host=<SLAVE1 NODE> user=postgres';
#今回追加しようとしているSLAVEノード(2)
node 3 admin conninfo = 'dbname=ga host=<SLAVE2 NODE> user=postgres';
store node ( id = 2,comment = 'Node 2' );
store node ( id = 3,comment = 'Node 3' );
store path (
 server = 1,client = 2,
 conninfo = 'dbname=TESTDB host=<MASTER NODE> user=postgres');
store path (
 server = 1,client = 3,
 conninfo = 'dbname=TESTDB host=<MASTER NODE> user=postgres');
store path (
 server = 2,client = 1,
 conninfo = 'dbname=TESTDB host=<SLAVE1 NODE> user=postgres');
store path (
 server = 2,client = 3,
 conninfo = 'dbname=TESTDB host=<SLAVE1 NODE> user=postgres');
store path (
 server = 3,client = 1,
 conninfo = 'dbname=TESTDB host=<SLAVE2 NODE> user=postgres');
store path (
 server = 3,client = 2,
 conninfo = 'dbname=TESTDB host=<SLAVE2 NODE> user=postgres');
store listen ( origin = 1,provider = 1,receiver = 2 );
store listen ( origin = 1,provider = 1,receiver = 3 );
store listen ( origin = 2,provider = 2,receiver = 1 );
store listen ( origin = 2,provider = 2,receiver = 3 );
store listen ( origin = 3,provider = 3,receiver = 1 );
store listen ( origin = 3,provider = 3,receiver = 2 );

というようなイメージで新しいノードを追加しておきます.

次に
SELECT * FROM _slony_test.sl_node;
や
SELECT * FROM _slony_test.sl_path;
などで,正しく設定されているかを確認し,追加したサーバにて
slonデーモンを立ち上げて,SUBSCRIBE SETコマンドを発行して
みてください.

以上の操作で,既存の2台で構成されているところに
もう1台を追加できると思います.

既存のレプリケーションの設定と違うパターンでレプリケーションを
したいということであれば,NODEの追加を行ってから,SUBSCRIBE SETを
せずに,改めてCREATE SETすれば良いと思います.

#蛇足ながら,Slony-I用のユーザは,postgresユーザは
#避けたほうが,より安心かと思います.
##Slony-Iの練習が終わってからで良いと思いますが...



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