Postgres sync_standby_names var不接受主机名中的“-”

时间:2019-03-14 12:14:35

标签: postgresql database-replication postgresql-10

我正在尝试使用3台计算机设置Postgres集群,以通过自动故障转移获得高可用性。

 const fetchSportsFanDetails = (sportsFanId, authToken) => {
    let url = `${API.BASE_URL}SportsFans/${sportsFanId}/profile`;
    console.log(`url: ${url}`)
    axios
    .get(url, {
      headers: {
        ...getAuthHeaderWithContentType(authToken, "JSON")
      }
    })
    .then(resp => (resp && resp.data ? resp.data : null));
   }

当我尝试在.then(resp => {console.log(resp); (resp && resp.data ? resp.data : null)});中使用postgres-01 --> master postgres-02 --> sync replica postgres-03 --> async replica 时,它无法重新启动postgres并出现以下错误

synchronous_standby_names='postgres-02'

从主机名中删除“-”可解决此问题,但这确实是必需的。

1 个答案:

答案 0 :(得分:0)

您必须引用名称:

synchronous_standby_names = '"postgres-02"'

您应该至少有两个同步备用服务器,否则,如果单个同步备用服务器出现故障,系统将停止运行。