【问题标题】:What's the point of having individual replication slots?拥有单独的复制槽有什么意义?
【发布时间】:2021-10-04 07:21:52
【问题描述】:

我对为单个副本使用单个复制槽的原因感到困惑(除了单点崩溃)。我知道每个复制槽只存储一定数量的 WAL 段,如果一个副本脱机,复制槽保证那些没有到达副本的段将被保留,直到它重新上线。但是,直到所有副本中最旧的检查点之前,它不需要更少的磁盘空间来存储段吗?

作为一个非常简化的示例,我有 3 个副本。第一个是在线的并且完全同步,所以假设我们不为这个存储任何东西。第二个在 30 分钟前下线,所以我们存储了最后 30 分钟的 WAL。第三个离线了 2 天,所以我们存储了 2 天的 WAL。当我们可以简单地存储 2 天并节省空间时,存储 2 天 30 分钟的 WAL 的原因是什么?

【问题讨论】:

  • 要明确所有插槽都指向同一个 WAL 源,每个插槽都不包含其 WAL 集。插槽只是一种维护有关特定复制在更改流中的位置信息的方法。

标签: database postgresql database-design


【解决方案1】:

插槽本身不存储任何内容。他们只是做会计让系统知道要保留多少。

当我们可以简单地存储 2 天并节省空间时,存储 2 天 30 分钟的 WAL 的原因是什么?

是什么让您认为它存储 2 天 30 分钟而不是简单地存储 2 天?

【讨论】:

  • > 是什么让您认为它是存储 2 天 30 分钟而不是简单地存储 2 天?显然对设计的理解不好。谢谢你的回答。
猜你喜欢
  • 1970-01-01
  • 2018-02-23
  • 2014-04-18
  • 2011-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-16
  • 2012-08-07
相关资源
最近更新 更多