問題タブ [bucardo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2132 参照

database - Bucardo 同期を追加してデータをレプリケートする

Bucardo を使用してデータベース内のデータを複製しています。mydb と呼ばれる 1 つのデータベースと、mydb2 と呼ばれる別のデータベースがあります。どちらにも、どちらの場合も「データ」と呼ばれる同一のテーブルが含まれています。この Web サイトの手順に従って、Bucardo をインストールし、2 つのデータベースを追加しました。

そしてテーブルを追加しました:

次のコマンドを使用して同期を追加しようとすると、次のようになります。

次のエラーが表示されます。

DBD::Pg::st の実行に失敗しました: エラー: Perl 関数 "herdcheck" からのエラー: 行 17 の同じ群れ (1) で異なるデータベースからのヤギを持つことはできません。 /usr/bin/bucardo_ctl 行 3346 で。

誰にも提案はありますか?いずれかをいただければ幸いです。

0 投票する
0 に答える
746 参照

postgresql - 待ち時間の長いリンク全体で 3 マスター レプリケーション用に bucardo を構成していますか?

私は bucardo を初めて使用し、データベース レプリケーション用にインストールする必要があります。アイデアは、同じ内容の 3 つのデータベースを複製することです。

「db1」と呼ぶデータベースがローカル マシンにインストールされています。

2 番目のデータベースがあり、クラウド サーバーでは「db2」と呼びます。

3 番目のデータベースがあり、db1 と db2 から物理的に離れたローカル マシンで「db3」と呼びます。

次の方法で 3 つのデータベースをレプリケートするには、bucardo が必要です。

  • db1 は db2 と複製します。

  • db3 は db2 と複製します。

このアプローチにより、3 つのデータベースに同じデータを保持できると思いますが、正しいですか?

また、db1 と db3 を使用するサーバーに bucardo JUST をインストールする必要があると思いますが、正しいですか?

ご支援ありがとうございました

よろしく

パウロ

0 投票する
0 に答える
246 参照

postgresql - bucardo を使用して 2 つの postgresql データベースを現在のデータと同期する

bucardo を使用して 2 つのデータベースを同期しようとしています。マスター ツー マスター レプリケーションを作成すると、正常に動作します。ただし、レプリケーションの前に挿入された行は同期できません。あるデータベースを別のデータベースにダンプしたくありません。どうやってやるの?手伝ってくれてありがとう。

0 投票する
2 に答える
2655 参照

postgresql - Postgres シーケンスが同期していない

bucardo と postgres を使用してマルチマスター セットアップを実行しています。

テーブル シーケンスの一部が互いに同期していないことがわかりました。特に、自動インクリメントされた ID。

例:

db1 - テーブル 1

新しい行の ID は 1 です

db2 - テーブル 1

新しい行の ID は 1 です

bucardo は db1 からデータをレプリケートしたため、db2 の新しい行の ID は 2 である必要がありますが、db2 の自動インクリメントは以下に基づいています。

「oauth_sessions_id_seq」を確認すると、最後の値が 0 であることがわかります。

ふぅ… 理にかなっていますか?

とにかく、私は次のいずれかを行うことができますか?

  1. 各 DB のセッションが共有されるように、セッション テーブルを bucardo で複製しますか?

  2. 上記のデフォルトの自動インクリメント関数を操作して、テーブル内の既存のアイテムの最大数を考慮しますか?

より良いアイデアがあれば、遠慮なくお寄せください。質問はお気軽にどうぞ。

0 投票する
2 に答える
1418 参照

postgresql - bucardo 経由で RDS への postgres マスター マスター デルタ レプリケーション

Bucardo-5.3.1 を使用しており、オンプレミスの postgreSQL データベースを複製しようとしています。RDS postgreSQL を使用してマスター - マスター レプリケーションを作成しました。RDS データベースが空で、pg_dump が完了している場合、正常にレプリケートできますが、デルタ レプリケーションを実行するときに問題が発生します。しようとするとpg_dump -U $PGSUPERUSER -h $PGHOST --data-only -N bucardo $PGDATABASE | PGOPTIONS='-c session_replication_role=replica' psql -U $BUCARDOUSER -h $PGHOST2 -d $PGDATABASE

セッションのレプリケーションが RDS によって拒否されているため、次のエラーが表示されます

私も以下のコマンドを使ってみました

pg_restore も使用してみましたが、それでもERROR: duplicate key value violates unique constraint

0 投票する
1 に答える
950 参照

postgresql - Bucardo Postgresql マルチマスターでシーケンスを処理する方法

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

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

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

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

0 投票する
1 に答える
2188 参照

postgresql - bucardo に postgresql データベースを追加中にエラー「/usr/local/bin/bucardo 行 308 でユーザー "bucardo" のパスワード認証に失敗しました」

Linux サーバーに Bucardo をインストールしました。しかし、ユーザー「bucardo」を使用してデータベースを追加しようとすると、追加できません。データベースの追加中に次のエラーが発生します。

DBI connect('dbname=bucardo;host=localhost;port=5432','bucardo') FATAL: /usr/local/bin/bucardo 行 308 でユーザー「bucardo」のパスワード認証に失敗しました

0 投票する
0 に答える
732 参照

postgresql - 2 つ以上の postgresql データベース間でマスター - マスター レプリケーションを実現するにはどうすればよいですか?

次の方法で、2 つ以上の postgresql データベース間でマスター - マスター レプリケーションをセットアップできるようにしたいと考えています。

db_main、db_1、db_2 という 3 つのデータベースがあるとします。db_main と db1 の間には双方向のレプリケーション設定 (Bucardo 用語ではスワップ同期かな?) があり、db_main と db_2 の間には別の設定があります。db_1 と db_2 は直接接続されていませんが、db_1 に table1 を作成し、db_2 に table2 を作成すると、table1 と table2 の両方が 3 つのデータベースすべてに伝達されます。

そのような設定は可能ですか?はいの場合、どのように?一貫性のレベルは?ソリューションは、ネットワーク障害によるメッセージ損失などの障害を許容しますか?

前もって感謝します。

0 投票する
1 に答える
151 参照

postgresql - 異なる postgresql バージョン間で bucardo を使用してレプリケーションを行うことは可能でしょうか?

postgresqlを備えた2つのデータベースサーバー(Debian 8.3)があります。最初のサーバーには postgresql 8.4 があり、2 番目のサーバーには postgresql 9.4 があります。

この 2 つのデータベース サーバー間で bucardo をセットアップすることは可能でしょうか?

私にお知らせください。ヒントをいただければ幸いです。