2011-08-05 14 views
2

は、「レプリケーション、クラスタリング、および接続プーリング」ページ(http://wiki.postgresql.org/wiki/Replication,_Clustering,_and_Connection_Pooling)に、それは複製の要件に、次の例を示します。PostgreSQLのレプリケーションツールPostgreSQLのWikiに

「ユーザーはデータベースのローカルコピーを取りますラップトップではオフィスにいたときに変更を加え、メインデータベースに戻ったときにそれらをマージする必要があります。ここでは、非同期の遅延レプリケーションのアプローチが必要です。マスターサーバーとローカルコピーの両方で同じレコードが変更された場合の競合を処理します。 "

これは私のケースです。しかし、残念なことに、同じページで、「(...)この背景の大きな原因は、Postgres-Rの用語とデータベースレプリケーションの定義にあります。それが言及していない主な理論的な話題は、ラップトップの状況のようなレイジーレプリケーションの場合の競合解決には、投票や類似の手法が含まれています。

私が知りたいことは、このような状況を解決する方法についての資料がどこにあり、PostgreSQLでこれを実行する最良の方法であるかということです。

答えて

2

Rubyrep http://www.rubyrep.org/を使用していて、うまくいけば誰でもそれを見つけることができます。

+0

?あなたはまだそれを働かせることができますか? – fatuhoku

2

RubyRepをチェックする必要がありますが、Bucardoはもっと広くサポートされている可能性があります。

ガブリエル・ワインバーグはBucardoをどのように使用しているかについて彼のサイトで優れたチュートリアルを持っています。この男はDuckDuckGoという独自の検索エンジンを実行しており、ユースケースに合わせて最適化されたヒントやテクニックがいくつかあります。あなたは正確に何のPostgresのバージョン、 `rubyrep`&そのさまざまな依存関係の宝石を使用しました

http://www.gabrielweinberg.com/blog/2011/05/replicating-postgresql-with-bucardo.html

+1

は素晴らしいようです。そして、より良く文書化されました。私はちょっとばかげたスケジュールがあるので、今はRubyRepを使っています(非常にシンプルで無痛です)。しかし、このプロジェクトをリファクタリングする機会があれば、私はBucardoを詳しく見ていきます。 – Nemeth