【发布时间】:2015-11-23 02:11:27
【问题描述】:
我有 2 个数据库: postgres (new) ; 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 分钟运行。我怎样才能避免这种情况?
【问题讨论】:
-
不要尝试自制这个。使用像 Londiste 这样成熟的工具会正确处理。
-
您真的需要复制数据吗?不能在新数据库中使用外来数据包装器直接访问旧数据库中的表吗?