2013-06-12 53 views
1

我有一個PostgreSQL數據庫,有一個表。每天,我想導出數據WHERE date='whatever'所以它只有轉儲我管理的數據今天。增量導出和導入postgresql C#

然後,我去到另一個數據庫,並導入轉儲文件,而不是覆蓋什麼,我已經有了,我想追加到它...

我試圖做到這一點在C#控制檯應用程序...任何建議?

謝謝。

+0

爲什麼你不使用更強大的東西? –

+0

客戶端需要使用PostgreSQL,他不需要MSSQL,MySQL等。只是PostgreSQL ...真是太遺憾了。 –

+0

我的意思是爲什麼你必須編寫自己的備份解決方案。 –

回答

2

不要這樣做。使用現有的維護良好的解決方案之一,如Bucardo,Londiste,Slony-I等。

請參閱Pg wiki上的replication

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" 

the manual on COPY

你可以做你的C#應用​​程序中同樣的事情用做兩個PostgreSQL的連接,這樣做的一個COPY FROM,和另一位COPY TO,然後複製他們之間的行。你會發現nPgSQL對COPY的支持對此很有用。