我需要一个可以通过网络定期从PostgreSQL数据库向第二个PostgreSQL服务器传输选择行的应用程序。通常,这些将是每10-30秒添加、拉取和传输的最新行。
主服务器在MS Windows环境中运行,网络连接具有高延迟,有时还会断断续续。因此,任何应用程序都必须容忍这种情况,理想情况下会自动重新连接/重新发送无法传输的数据。由于环境和要求的原因,不需要完整的复制程序包。
我很感谢任何人在这个问题上得到的帮助。
发布于 2009-09-14 15:40:17
我相信长毛象复制者可以满足你的需要。它是完全成熟的系统,可以向后扩展以支持单表复制。
http://www.commandprompt.com/products/mammothreplicator/
发布于 2009-09-15 10:03:02
我认为最简单的方法是向表中添加一个序列列(change_id),它将使用update和insert触发器自动更新。
从数据库将定期连接到主数据库,并在伪代码中执行类似以下操作:
for
select *
into row
from master.tablename
where change_id>(select max(change_id) from slave.tablename)
loop
delete from slave.tablename where id=row.id;
insert into slave.tablename values (row.*);
end loop;这不支持master上的行删除,所以我还要在master上创建一个delete触发器(在8.4或更高版本中截断),它只会抛出一个错误。
https://stackoverflow.com/questions/1422293
复制相似问题