1

テーブルが 1 つある PostgreSQL データベースがあります。毎日、データをエクスポートしたいWHERE date='whatever'ので、今日管理したデータのみをダンプします。

次に、別のデータベースに移動し、その DUMP ファイルをインポートしますが、既に持っているものを上書きするのではなく、追加したい...

これを C# コンソール APP で実行しようとしています... 何か提案はありますか?

ありがとうございました。

4

1 に答える 1

2

このようにしないでください。Bucardo、Londiste、Slony-I など、適切に管理されている既存のソリューションのいずれかを使用してください。

Pg wiki でレプリケーションを参照してください。

Londiste は、少なくとも停止に対処し、追いつきたいときに再開できるため、必要に応じて毎日のバッチとして実行できます。

扱っているのが挿入専用のテーブルだけである場合は、本格的なレプリケーションの必要性を回避できます。必要なのは次のようなものだけです

psql -h host1 db1 -c \
    "\copy (SELECT * FROM the_table WHERE the_date = '2012-01-01') TO stdout" \
| psql -h host2 db2 -c \
    "\copy the_table FROM STDIN"

のマニュアルを参照してください。COPY

C# アプリ内で同じことを行うには、2 つの PostgreSQL 接続を作成し、COPY FROM1 つを実行し、もう 1 つを実行COPY TOし、それらの間で行をコピーします。これには、nPgSQL のサポートがCOPY役立ちます。

于 2013-06-12T23:59:30.473 に答える