パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

PostgreSQL用レプリケーションの大本命? Slony-I 1.0.0リリース」記事へのコメント

  • DBのレプリケーション機能って, 確かに宣伝文句としては非常に魅力的なんですが, 実際にシステムとして使う場合に

    • 特にトランザクション処理などで一定の性能が確保できるか?
    • 操作ミス, プログラムバグ等も含めた障害発生時の復旧手順を簡素化(できれば自動化)できるか?

    なん

    • PGCluster が最近お気に入りです。

      PGCluster はマルチマスタ(みんな親でどれが死んでも良い)同期レプリケーション(トランザクション毎に全サーバのデータの同期が取れる)方式のレプリケーションで、これは運用側から見てとてもメリットがあると思います。

      以下に使っていてここが良いと実感できたことをざっと挙げてみました。

      • サーバに障害が起こってもサービスが停止しない。(これが一番重要だと思ってます

      • 同期レプリケート方式なのでサーバが完全に死んでも定期バックアップなどまでデータがロールバックされてしまうこともありません。(とは言え定期バックアップも当然取りますが

      • マルチマスタなのでどのサーバに障害が発生した場合も同じ手順で対応できます。(マスタとスレーブがある方式だと、障害が発生したのがマスターなのかスレーブなのかにより、対応方法や復旧手順も少なくとも2通りは考慮する必要があります

      • トランザクションの整合も負荷テストである程度ベンチが取れており、運用しているものでは問題はおきていません。

      • 障害発生時のクラスタサーバの切り離しは自動化されています。

      • 復旧処理も自動化されています。(起動時に稼働中の他クラスタサーバからrsyncで同期を取り、その間のトランザクションもレプリケートされ、その後再びクラスタリングに参加します。これらは全て自動的に行われます

      • 操作ミス、プログラムバグに関してはレプリケーションで対応する問題ではなく PostgreSQL 7.5 で実装される PITR(Point in time recovery)機能などで対応することかと思います。(当然ベースの PostgreSQL でこの機能が実装されれば PGCluster も同様にその恩恵を得られるようになるでしょう


      一口にレプリケーションと言っても、マルチマスタかどうか、同期か非同期(遅延同期など)とか、これらの組み合わせ等で色々な実装があります。それぞれパフォーマンス面や運用面で一長一短があり、何を重視するかによって選択肢は変わってきます。

      PGCluster の場合は運用面のメリットが大きく、パフォーマンスに関してはクラスタサーバの数が増えるほど、参照系では負荷分散による性能は向上し、更新系のパフォーマンスは悪くなる。
      という特徴があります。

      >最終的にはファイル転送+バッチ更新で十分だし確実. なんて話しに落ち着くことが多い
      と言うのよりは一つ上の確実さなどがあると感じています。
      親コメント

あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー

処理中...