【问题标题】:Syncing a table between two PostgreSQL databases consistently一致地在两个 PostgreSQL 数据库之间同步表
【发布时间】: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 这样成熟的工具会正确处理。
  • 您真的需要复制数据吗?不能在新数据库中使用外来数据包装器直接访问旧数据库中的表吗?

标签: postgresql replication


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-09
    • 2022-12-28
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    相关资源
    最近更新 更多