2011-05-02 47 views
0

我想在PG9中使用流复制进行质量保证 - 也就是将数据从生产流传送到QA。警告:我需要在QA中混淆数据(更改密码散列,电子邮件等)。流式复制 - 模糊复制?

是否有可能通过流式复制实现它?如果没有,是否有任何替代方案可以通过即时混淆进行增量更新?

回答

0

我想你可能不得不在这里推出自己的东西。我要做的是在真正的表上设置一个触发器,将混淆的/任意的值放在这些东西的位置,并将它们推入到具有相同名称的表中。那么我会复制数据库,用这些表代替原件。这样,没有安全的数据会离开生产,并且您可以使用预先构建的复制引擎(slony),而无需自行滚动所有内容。如果您需要帮助,请转到slony管理员指南开始。它看起来非常复杂,但并不算太坏,一旦你掌握了它,你就可以用它做一些非常酷的和惊人的事情。

+0

一个澄清的说明:我一直在运行PostgreSQL流式复制一段时间了。这是一种二进制复制机制,正因为如此,您无法隔离数据库中的数据库或表。要隔离数据库,您需要通过日志传送使用PITR(时间点复制)。使用PITR,您无法得到您想要的任何东西。尽管我喜欢斯科特的建议! – Eric 2013-03-04 13:23:41

0

清除和简短回答:否。

在PostgreSQL嵌入式流式复制主从机必须是相同的。不仅你不能改变特定的记录和字段,而且你也不能改变数据库的数量。主站(包括其所有数据库,表和数据)的完整“数据库集群”将被复制到从站。

实际需要的是某种基于触发器的逻辑复制。我听说pglink可以做到这一点,但我从来没有尝试过。