,因熱備服務器上的只讀查詢失敗,我們只是成功將一個主服務器備份到熱備服務器上。然而,當我們試圖查詢到雙機熱備,我們得到以下錯誤:由於獲取事務標識
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
感謝提示保羅,但我們不希望熱備用退出恢復。理想情況下,它始終處於恢復狀態,並幫助主/主機運行只讀查詢。 –