只读查询的 Postgresql 冗余,按需刷新

Postgresql redundancy for read-only queries with refresh on demand

我想知道是否有任何 postgresql 工具可以促进按需复制到只读服务器。问题描述如下:

理想情况下,报告应该 运行 在数据库的 一致 快照上。 解决这个问题的思路如下:

从站不会用于故障转移,这不是目的。

这个问题有什么好的解决办法吗?或者可以用不同的方式解决?

看起来有一个很好的解决方案。 Postgres >= 9.2 可以导出当前事务的快照 ID。每个使用相同快照 ID 的事务在开始时都会看到相同的数据。

在我的例子中,我可以创建一个 "dummy" 交易并导出它的快照。虚拟事务不会做任何事情,它会在流程开始时开始,并在流程结束时结束。所有报告都将使用此快照 ID 来报告在创建虚拟交易时可见的数据。

更多关于快照的信息:https://www.willglynn.com/2013/10/25/postgresql-snapshot-export/