是否可以在集群中的 postgresql 中为 slave/standby 服务器提供写权限?

Is it possible to provide write permissions for slave/standby servers in postgresql in a cluster?

我在同一个网络上有两台服务器,我用主从结构进行直播。我没有使用任何工具,如 Slony 或 Bucardo。这是一个简单的复制过程,可以通过更改 .conf 文件中的一些参数来完成。目前它可以在主机上接受 read/write 而在从机上只读。但是我想要一个主控结构,其中两个服务器都可以接受读取和写入请求。这在 PostgreSQL 9.3 或更高版本中可能吗?

据我所知,Multimaster 在 PostgreSQL 的香草风格中不可用。您检查过 Postgres-XC 或 Postgres Plus 了吗?

[http://postgresxc.wikia.com/wiki/Postgres-XC_Wiki][1]

[http://www.enterprisedb.com/products-services-training/products/postgres-plus-advanced-server][2]

Is it possible to provide write permissions for slave/standby servers in postgresql

没有

It's a simple replication process that can be accomplished by changing some parameters in the .conf files

所以,PostgreSQL 的内置流复制。

However I want a master-master structure, wherein both the servers can accept read as well as write requests. Is this possible in PostgreSQL 9.3 or above?

PostgreSQL 9.4 有一个扩展,它添加了多主机,称为 BDR。参见 http://bdr-project.org/docs/stable/ and http://2ndquadrant.com/BDR。虽然它还没有真正准备好被新的数据库用户广泛采用——如果你现在要使用它,你应该对 PostgreSQL 和复制很有信心。 (注意:我是 BDR 的开发者之一)。 BDR 是 异步多主机复制 ,它不是透明的集群,您只需将现有应用程序指向并期望它无需更改即可工作。详见手册。

还有 Postgres-XC 及其分支 Postgres-XL,它们为 PostgreSQL 添加了紧密耦合的多主集群和并行调度。应用程序可能需要对 XC 上的 运行 进行较少的更改,但它需要节点之间快速、可靠、低延迟的网络连接。

还有其他选项,如 Slony-I 的多主机变体、Bucardo 项目等。

所有这些都有一些共同的细节:知道你在做什么真的非常重要以及多主机的确切限制、注意事项和特殊情况您选择的实施是。如果您只是继续部署指向多个主节点的应用程序而没有仔细考虑和测试,您将度过一些不眠的周末和愤怒的用户。

那是在您进行灾难恢复规划、故障转移、备份管理等之前

如果您不知道绝对需要多主机,那么请不要使用它。