CentOS5.3: Slony-I 2.0を使ってみた (1)
Slony-I (http://www.slony.info/) はPostgreSQL用のマスタースレーブ型のレプリケーションサービスであり、MySQLのレプリケーションと同様、
1. スケールアウト
2. ディスク引き継ぎ無しでのフェイルオーバー
などに使用できる。また、MySQLでは、ある時点でDBのデータとログの情報が一致していないとレプリケーションを始めることができないが、Slony-Iではスレーブ側のデータが空でも、レプリケーションを始めることが出来る。(テーブルの作成だけは必要。)
一応、目標としては、Red Hat Cluster と組み合わせてフェイルオーバーを行うことなのだが、
・ Fedora 11についてはPGDG (https://projects.commandprompt.com/public/pgcore) でRPMが出ていない
・ CentOS 5.3 ではfence_virsh が無いため、フェールオーバーが出来ない
などの事情から、まずは、手動でSlony-Iを稼働させるところまでで満足することにした。
最初のDBのレプリケーション(localhost)は、こちらを参考にした。
http://powergres.sraoss.co.jp/s/ja/tech/plus/experience/vol10/largescale_database1.php
以前MySQLのレプリケーションは行ったことがあったため、それと同じ感覚で使うことができた。
なお、今回PosrgreSQL 8.3 と、Slony-I 2.0 を使ったのだが、手順内で、
slonik < _EOF_ ... store node (id=2, comment='Slave') ...
の部分は、
slonik < _EOF_ ... store node (id=2, comment='Slave', event node = 1 ) ...
としないと上手く動作しなかった。(slony-I 2.0 での変更らしい。)
これで、一応動作はしたのだが、 今のところslonデーモンを手動で起動する、停止はkill で行う等、運用上の改善の余地がある手順となっている。。 RPMには /etc/init.d のスクリプトも付属していたため、こちらが使えるかどうかを確認してみる。