我有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分钟。我怎么能避免这个?
答案 0 :(得分:2)
不要尝试自己复制,这是一个难题。 PostgreSQL有a number of different replication schemes,其中有几个是内置的。一切都会比你正在做的更好。
您正在做的是创建“热备用”,其中数据库的副本可用于只读查询。 Here are instructions to set that up和detailed documentation。