2004/06/11(金)PostgreSQL の二重化
2017/10/12 3:34
先に 7.4.2 を入れてしまった環境では、待ちの姿勢の方が良い(7.4.2 ベースは開発中ですが、苦労されているようです)
だろうということで、標準でバンドルされている DBMirror というものを採用しました。
情報がすくなく、かろうじて これ が唯一非常に参考になる情報でしたが、実際に動作させると、
ミラーリング処理で「Permission denied」的なエラーがでまくりでした。
権限の問題ということは判ったのですが、ひとつだけ serial 型のスキーマがどうしても「Permission denied」
になり、どうしようもない状態になりましたが、マニュアル漁っていると、serial 型は内部でテーブルを作って
動作させている、ということがヒントになり、通常のテーブルと同じように考えることで、権限の問題を解消しました。
おそらく、Postgresスーパーユーザではまず起きない問題でしょう。
解決するのに3~4時間填まってました +_+)。
一旦稼働できると、札幌のマシンで更新したデータが、30秒程度後には、東京のマシンに即座に反映するので、
本当に即時性が必要な用途以外では実用になります。
DBMirror はスレーブサーバ側には、特に仕掛けは必要ないですが、DBMirror 稼働させる直前のデータを
スレーブ側に用意しておくことと、生データが流れるので、PostgreSQLを SSL 対応にしておくことが重要だとおもいます。