slony-I slonik_store_node時のエラー schema does not exist
slony-Iのslonik_store_nodeでスレーブ追加時に
$ slonik_store_node 2 | slonik <stdin>:12: Set up replication nodes <stdin>:15: Next: configure paths for each node/origin <stdin>:26: PGRES_FATAL_ERROR select "_schema_name ".storePath(2, 3, 'host=address1 dbname=db user=user port=5432 password=pass', 10); - ERROR: schema "_schema_name" does not exist
のようなエラー出てたんだけど、やっとこさ原因が判明した。
slon_tools.conf
#ノード2(スレーブ側)設定 add_node(node => 2, host => 'address1', dbname => 'db ', port => 5432, user => 'user', password => 'pass'); #ノード3(スレーブ側)設定 add_node(node => 3, host => 'address2', dbname => 'db ', port => 5432, user => 'user', password => 'pass');
という定義で、node2とnode3を今回、追加対象とする。
で、slonik_store_node 2を実行すると、
store path (server = 2, client = 3, conninfo = 'host=address1 dbname=db user=user port=5432 password=pass');
という出力を確認。
あー。なるほど。
store_nodeが完了されたノードじゃなくて、slon_tools.confに定義されているノードに対して、ノードが追加されることを通知するんだ。だからnode3にはまだ、レプリケーション用スキーマが作成されていない。という訳なんですね。
で、その後、
$ slonik_store_node 3 | slonik
を実行すると、2はstore_nodeでスキーマ作成済みなのでエラーなし。となるわけか。
「store_nodeしたノード」に対してノード追加を通知と完全に勘違いしてた。
#上記エラーが出てもレプリケーションは正常に動作します。
どうしても気になるようなら、
- slon_tools.confにnode2を定義(node3は記載しない)
- slonik_store_node 2 | slonik
- slon_tools.confにnode3を追記
- slonik_store_node 3 | slonik
という流れになるのか。