首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有按需刷新的只读查询的Postgresql冗余

具有按需刷新的只读查询的Postgresql冗余
EN

Stack Overflow用户
提问于 2016-04-12 11:16:38
回答 1查看 471关注 0票数 0

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

  • 每个数据更改进程都是作为多个事务运行的(进程很复杂--例如,加载数据、运行计算、运行更多的数据等等)。在进程完成之前,我认为数据库在报告方面是不一致的。
  • 报表应该只使用一致的数据,而不应该等待数据更改过程的完成--它们应该使用旧的(一致的)数据。

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

  • 有两个服务器-主服务器和从服务器。最初,两者拥有完全相同的数据。
  • 所有数据更改过程都将在主服务器上运行。
  • 所有报告任务都将在从服务器上运行。
  • 一旦数据更改过程完成,就会触发从服务器的刷新.例如,触发器将是:运行一些命令,在文件系统上创建一个文件,等等。不允许读取部分刷新的从程序。
    • 这不会花太长时间--应该与主人的变化大小成比例

奴隶不会被用于故障转移,这不是目的。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-12 13:18:21

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

在我的例子中,我可以创建一个“虚拟”事务并导出它的快照。虚拟事务不会做任何事情,它将在进程开始时启动,当进程完成时将结束。所有报表都将使用此快照id来报告在创建虚拟事务时可见的数据。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36571687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档