安全地通过WAN进行PostgreSQL数据聚合

需要一些关于如何处理这种情况的build议:我目前的情况是,我有几个postgresql(50+)盒子部署在各个位置和数据中心和一个强大的postgresql框设置在一个homebase位置。 所有部署的盒子都有相同的数据库布局。 我正在寻找一个解决scheme,将允许几件事情。 我意识到这些选项中有一些重叠,有些可能只包含相互排斥的解决scheme。 不过,我有兴趣听到你的想法:)

  1. 远程查询已部署的框,并将结果返回到本机框进行处理。

  2. 每晚(远程)“同步”或将已部署的数据库的数据库转储到主页框上的主数据库。 虽然每个遥控器的盒子都有相同的表格布局,但是实际的数据在板子上是不一样的。 能够将所有这些数据远程转储到主数据库中将是理想的。

  3. 从homebase框中远程推送表项到所有已部署的框。

  4. 确保数据传输的安全性,以及远程部署的盒子。

到目前为止,我一直在一个自制的multithreadingpython / perl系统上运行,SSH远程地将这些信息发送到homebase服务器,并通过ssh连接把原始的查询结果拉出来(或者推送)。 我甚至碰到#2(远程同步),因为我知道会很快得到讨厌的。 我对任何想法都有兴趣,可以扩展并坚持使用FreeBSD / Linux环境。

1远程查询已部署的框,并将结果返回到本机框进行处理

与SSL启用和“强制”的标准连接将提供您正在寻找(请参阅#4的答案)。

2夜间(远程)“同步”或将已部署的数据库的数据库转储到主页框上的主数据库。 虽然每个遥控器的盒子都有相同的表格布局,但是实际的数据在板子上是不一样的。 能够将所有这些数据远程转储到主数据库中将是理想的。

3从主页框中远程推送表项到所有已部署的框。

你有没有考虑过许多可用的复制解决scheme之一 ,包括Slony?

4确保数据传输的安全性,以及远程部署的盒子

PostgreSQL支持开箱即用的SSL。 您也可以强制每个服务器实例都要求 SSL进行连接。 这将在传输级别提供encryption。 我相信如果你想有一个额外的安全层,新版本也支持客户端证书。

在我看来,你有几个数据库存储相同的信息,没有复制计划。

我的build议是:

(1)考虑通过安全传输进行复制。 我会更愿意使用VPN,而不是使用SSH。

(2)放入irc.freenode.net上的#postgresql以获取更好的build议。

(3)确保您的遥控盒全部locking。 如果你想确定,使用OpenBSD而不是Freebsd / Linux。 高枕无忧!