复制 – 由于获取事务ID,热备用服务器上的只读查询失败

我们刚刚成功将主服务器备份到热备用服务器上.但是,当我们尝试查询热备用时,我们收到以下错误:

ERROR: cannot assign TransactionIds during recovery

我启用了详细模式,并在varsup.c:72中看到错误

/* safety check, we should never get this far in a HS standby */ 
if (RecoveryInProgress())
   elog(ERROR, "cannot assign TransactionIds during recovery");

奇怪的是,如果我们使用psql客户端并发出多个读取查询,第一个将失败,但所有后续的将成功.

pipeline=#    SELECT pg_is_in_recovery();
ERROR:  cannot assign TransactionIds during recovery
pipeline=#    SELECT pg_is_in_recovery();
 pg_is_in_recovery 
-------------------
t
(1 row)

使用postgres 9.5.3

任何想法都会非常感激.

BTW:
我们已添加:
hot_standby = on pipelinedb.conf(相当于postgresql.conf)

我们补充说:

primary_slot_name = 'replicator_slot'
primary_conninfo = 'user=username host=ip_address port=5432'
recovery_target_timeline = 'latest'

到recovery.conf

最佳答案 我们目前正在调查
the issue你是如此仔细地为我们写的.一旦解决了,我会在这里发布更新,这不应该很长

点赞