我想知道是否有任何postgresql工具可以促进按需复制到只读服务器。这是问题描述:
每个数据更改过程都作为多个事务运行(过程很复杂 - 例如,加载数据,运行计算,运行更多数据等)。在流程完成之前,我认为数据库不一致用于报告。
报告应仅使用一致的数据,但不应等待数据更改过程完成 - 它们应使用旧的(一致的)数据
理想情况下,报告应在数据库的一致快照上运行。 解决这个问题的想法如下:
Slave不会用于故障转移,这不是目的。
这个问题有什么好的解决方案吗?或者也许它可以用不同的方式解决?
答案 0 :(得分:0)
看起来有一个很好的解决方案。 Postgres> = 9.2有可能导出当前事务的快照ID。每个使用相同快照ID的事务都会在开头看到相同的数据。
就我而言,我可以创建一个“虚拟”事务并将其快照导出。虚拟交易不会做任何事情,它会在流程开始时启动,在流程完成时启动。所有报告都将使用此快照ID来报告当创建虚拟事务时当前可见的数据。
有关快照的更多信息,请访问:https://www.willglynn.com/2013/10/25/postgresql-snapshot-export/