CVS ツリーの altperl ディレクトリに Slony-I 一式をを管理するのに使用されるかなり多くの Perl スクリプトがあり、これらは任意の数のノードをサポートします。
これらスクリプトの殆どは Slonik スクリプトを生成し、その後ある特定のクラスターの全ての Slony-I ノードに供給される slonik ユーティリティに渡されます。1回だけ slonik スクリプト上で稼働中の slonik に組み込まれます。残念ながら、これは時たま、ちょっとしたコマンドラインの入力ミスなどで、大口径の"フットガン"(訳者註:自分の足を狙って撃つ銃)となり、スクリプトが単に出力を標準出力に出すように変更された振舞をする、とてもおかしな動作を引き起こします。管理者は slonik に供給する前にスクリプトを見直す必要があります。
Unix 環境変数 SLONYNODES は Slony-I クラスタ内のノードの形を管理するためどの Perl 構成ファイルを使用するかを決定します。
設定される変数
$CLUSTER_NAME=orglogs; # レプリケーションクラスタの名称は?
$LOGDIR='/opt/OXRS/log/LOGDBS'; # ログ用のベースディレクトリは?
$APACHE_ROTATOR="/opt/twcsds004/OXRS/apache/rotatelogs"; # 設定されている場合、Apache のログローテータを探すには?
その後 add_node() に対し一連の呼び出しを使用してレプリケートされるノードの集合を定義します。
add_node (host => '10.20.30.40', dbname => 'orglogs', port => 5437, user => 'postgres', node => 4, parent => 1);
add_node() のパラメータは下記の通りです:
my %PARAMS = (host=> undef, # ホスト名 dbname => 'template1', # データベース名 port => 5432, # ポート番号 user => 'postgres', # 接続ユーザ node => undef, # ノード番号 password => undef, # ユーザパスワード parent => 1, # このノードの親ノード noforward => undef # このノードを結果転送するように設定するか? sslmode => undef # SSL モード引数 - SSL 使用の優先度の決定 = disable,allow,prefer,require );
Unix 環境変数 SLONYSET はある特定のレプリケーションセットにどのオブジェクトが含まれるかを決定するために使用されます。
全てのslonik-生成によるスクリプトに対して基本となる SLONYNODES とは異り、特定のレプリケーションセットにどのテーブルがあるかを管理するためのスクリプトで、これは create_set を実行する時にだけ必要となります。
設定される変数
$TABLE_ID = 44;
それぞれのテーブルは一意の番号で特定されなければなりません。この変数は番号付けがどこから開始されるのかを管理します。
$SEQUENCE_ID = 17;
それぞれのシーケンスは一意の番号で特定されなけらばなりません。この変数は番号付けがどこから開始される粉を管理します。
@PKEYEDTABLES
Slony-I が自動的にそのキーを選択できるように設定された主キーを保有した複製されるテーブル名の配列
%KEYEDTABLES
複製されるテーブルのハッシュテーブルで、ハッシュインデックスはテーブル名、ハッシュ値は 「主キー候補」として適用可能な一意の NULL でないインデックス名
@SERIALTABLES
主キーの候補でない複製されるテーブル名の配列
@SEQUENCES
複製されるシーケンス名の配列
データベースへの問い合わせ、slon_tools.conf の構成に適用ができれば可能な出力の生成
クラスタを構成する add_node() 呼び出しの集合
配列 @KEYEDTABLES, nvar>@SERIALTnvar>、および@SEQUENCES
これは SLONYNODES と共に SLONYSET の設定が必要です。複製されるテーブルとシーケンスのセットを構成するレプリケーションセットを設定する slonik スクリプトを生成するのに使用されます。
あるノードの起動を要求する Slonik スクリプトの生成。 1.0.5より前で、slonデーモンが死んでしまった時にノードも停止させたい場合に特に有用でした。
洗練されたウォッチドッグの様なもの。特定の Slony-I ノードを監視し、20 分以上更新がされない場合 slon プロセスを再起動
slon が知らないうちに時おり停止してしまうような信頼性のないネットワーク接続の場合に有用
それぞれのノードを巡回し Slony-I スキーマをノードから削除。クラスタ全般に渡りレプリケーションを削除する時に使用。非常に危険なスクリプト
Slony-I ノードに接続し、どのようなt STORE LISTEN 要求がクラスタに送られなくてはならないかを演算する問い合わせ(sl_set, sl_node, sl_subscribe, sl_pat)を各種テーブルに対して実行
より詳細な動作については 項8.3 のドキュメントを参照してください。