始终在两个PostgreSQL数据库之间同步表

时间:2015-11-23 02:11:27

标签: postgresql replication

我有2个数据库:postgres(新); tnpm(旧)。目前,我需要将数据从[tnpm]复制到[postgres]。我可以使用以下方法复制它:

   INSERT INTO ip_cpu_mn(datetime, resource_name, cpu_utilization)

   SELECT cpu_mn.datetime,resource_name, cpu_utilization
   FROM dblink('host=10.0.32.175 user=postgres password=postgres dbname=TNPM_EXT',
 'SELECT datetime, resource_name, cpu_utilization
   FROM ext_ip.cpu_mn WHERE datetime =(SELECT MAX (datetime) - interval ''10 minutes'' as maxdate FROM ext_ip.cpu_mn)')

AS cpu_mn( datetime timestamp without time zone,
  resource_name character varying(150),
  cpu_utilization numeric(6,2))
奇怪的是,当我开始在这些数据库之间进行验证时,数据在新数据库中是不一致的,似乎它丢失了。复制过程使用crontab运行5分钟。我怎么能避免这个?

enter image description here

1 个答案:

答案 0 :(得分:2)

不要尝试自己复制,这是一个难题。 PostgreSQL有a number of different replication schemes,其中有几个是内置的。一切都会比你正在做的更好。

您正在做的是创建“热备用”,其中数据库的副本可用于只读查询。 Here are instructions to set that updetailed documentation