gpt4 book ai didi

postgresql - 时间轴和历史文件 postgresql 9.1

转载 作者:行者123 更新时间:2023-11-29 11:37:34 25 4
gpt4 key购买 nike

谁能给我解释一下时间线和历史文件的用途以及 recovery.conf 中的“recovery_target_timeline”设置。

我从 postgresql 9.1 文档中得到的模糊理解是,当 slave 完成恢复时,它会切换到新的时间线,以防止覆盖先前时间线的 WAL。我不清楚这是如何在恢复场景中使用的,也不清楚 .history 文件的用途以及将“recovery_target_timeline”设置为“最新”。

我想了解当我将奴隶提升为新主人时会发生什么。它在接受读/写查询之前恢复并启动新的时间线。

现在,如果我设置一个新的从站,因为我将现有的从站提升为主站,它是否需要/使用前一个从站(新主站)生成的历史文件来读取(由新主站)生成的新 WAL 以连续存档/日志传送。

非常感谢。

最佳答案

要了解时间线,您必须了解它们是为了避免 MVCC 问题和时间线分歧。考虑这一点的一个好方法是在复制的上下文中。在主/从流式复制中,您不希望有人将从属作为主插入一堆信息,然后将其转回从属。如果您这样做,WAL 段的二进制日志将无法再正常运行,您将导致数据库损坏。

当您将一个奴隶恢复到一个新的主人时,它会完成“恢复”并开始自己的时间线。从这一刻起,它现在是主人,不重建就不能变回奴隶。这给故障转移和故障回复带来了一些问题,但解决这个问题的方法是定期来回故障,旧的主服务器重建数据库(使用 pg_basebackup)作为新的从属服务器。这意味着每个故障转移/故障回复都是一个新的时间线。

是的,这确实会影响多台服务器的故障转移,因为从服务器必须更改时间线。

关于postgresql - 时间轴和历史文件 postgresql 9.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11091735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com