3

3 つの異なる Postgresql サーバー (将来的にはさらに増える可能性があります) にデータベースをセットアップしており、現在、bucardo マルチマスター グループを使用してすべてのテーブルを同期しています。

シーケンスを同期していません。私たちはそれを試しましたが、異なるサーバー上の同じテーブルで同時書き込みが発生すると、bucardo によってデータが失われることに気付きました。それらは同じキーを使用するため、同期時に bucardo は重複行の 1 つを削除することを選択します。

私たちの現在のアプローチは、データベースの各インスタンスでシーケンスを手動で名前空間にすることです。たとえば、インスタンス 1 はそのままにしておきます。すべてのインスタンス 2 テーブル シーケンスは 2^31/10 から開始するように更新され、インスタンス 3 テーブル シーケンスは 2^31/10*2 から開始するように変更されます。インスタンス 10 シーケンスは 2^31 から開始するように変更されます。 /10*9.

このアプローチについてどう思いますか? また、Bucardo マルチマスター セットアップについて他に何かアドバイスはありますか? Postgresql BDR は、まだ安定したリリースとは見なされていないため、オプションではありません。

4

1 に答える 1