我刚刚在2个postgres服务器之间build立了一个slony复制。 一个主人,一个奴隶主人。 数据正在被复制。 我们不想使用这个数据备份或任何东西,但要做一些计算密集型计算在奴隶。
如果我们要在从数据库上的一个表上创build一个索引,这个数据库在master数据库上不存在,那么是否可以/可以。 我们不会将任何数据添加到从站,我们只是希望能够在从站上更快地运行某些查询。
这会打破诽谤复制? 这会让我们在屁股后面咬我们吗?
Slony是基于触发器的,并且高度可configuration。 是的 – 根据这里的文件。
可以通过应用程序(如psql)直接在节点上应用DDL更改。 DDL更改不会被Slony-I复制,因此必须手动应用到每个相关节点。 直接应用DDL更改时应记住以下几点。
关于利弊。 我们的团队前一阵子面临着同样的问题(高可用性集群解决scheme,IOPS卸载),在调查/testing其中的一些问题之后,我们最终只进行了stream式复制。 – 简单的设置/维护,读取加载的复制品。
多租户(Slony不能在不同的节点上分割postgres模式),在我们的应用程序后端使用触发器,扩展的索引(cube,pg_trgm,cube,earthdistance和频繁的DDL变更使得我们无法使用Slony。换句话说 – 您应该了解您的应用程序和目标,以便select正确的解决scheme。
对于分片数据 – PostgresXL绝对值得关注。我们也试过了! 但它不适合我们,因为它不支持我们正在使用的所有types的指标:(