1

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

bucardo_ctl add database mydb
bucardo_ctl add database mydb2

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

bucardo_ctl add all tables

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

bucardo_ctl add sync testfc source=mydb targetdb=mydb2 type=pushdelta tables=data

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

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

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

4

1 に答える 1

2

したがって、ソースオプションには、群れの名前を入力する必要があります(これは、私が知っているように、テーブルのリストです。次に、代わりに:

bucardo_ctl add all tables

使用する

bucardo_ctl add all tables --herd=foobar

そして、使用する代わりに

bucardo_ctl add sync testfc source=mydb targetdb=mydb2 type=pushdelta tables=data

使用する

bucardo_ctl add sync testfc source=foobar targetdb=mydb2 type=pushdelta tables=data

問題は、ソース オプションがソース データベースを置く場所ではなく、「群れ」またはテーブルであるということです。

pushdelta は主キーを持つテーブル用であり、fullcopy は PK の有無に関係ないテーブル用であることに注意してください。

それが役立つことを願っています。

于 2013-02-13T15:47:49.500 に答える