gpt4 book ai didi

postgresql - 当复制落后于备用节点时,Pgpool 在备用节点而不是主节点上执行查询

转载 作者:行者123 更新时间:2023-11-29 11:51:15 24 4
gpt4 key购买 nike

我有一个 postgresql 10 主数据库和 2 个带流复制的热备用服务器,并且复制工作正常。 synchronous_commit 设置为 remote_write

我还有一个配置了参数的 pgpool 3.7.5:

delay_threshold = 1
sr_check_period = 1

以及以下权重:

  • 大师:1
  • 节点 1:3
  • 节点 2:3

在日志中我可以看到 node1 和 node2 滞后:

Replication of node:1 is behind 75016 bytes from the primary server (node:0)

pgpool docs说:

delay_threshold (integer)

Specifies the maximum tolerance level of replication delay in WAL bytes on the standby server against the primary server. If the delay exceeds this configured level, Pgpool-II stops sending the SELECT queries to the standby server and starts routing everything to the primary server even if load_balance_mode is enabled, until the standby catches-up with the primary. Setting this parameter to 0 disables the delay checking. This delay threshold check is performed every sr_check_period. Default is 0.

问题在于 pgpool 在通过流复制从 master 获取新数据之前向热备用发送查询。

我暂时启用了 log_per_node_statement = on 以便能够查看查询执行的节点,并且我可以看到即使在 delay_threshold 时没有同步,查询也会发送到节点 应该避免这种情况。

我错过了什么吗?当节点落后于 master 时,查询不应该去 master?

提前致谢。

pgpool 的其他配置值是:

num_init_children = 120
max_pool = 3
connection_cache = off
load_balance_mode = on
master_slave_sub_mode = 'stream'
replication_mode = off
sr_check_period = 1

最佳答案

首先,我认为您应该检查“show pool_nodes”的结果并检查三个节点是否正确设置了正确的角色(主要、备用、备用)。

其次,您是否设置了“app_name_redirect_preference_list”或“database_redirect_preference_list”?如果是这样,那会影响为 SELECT 查询选择节点。

而且在我看来,我认为 delay_threshold = 1 是严格的,单位是字节,在我的例子中,我在 PROD 上使用“10000000”。你为什么不直接添加“/NO LOAD BALANCE/”注释来将特定查询仅发送给 master?

我只是建议您将 pgpool 的版本升级到 4.0.0(2018-10-19 发布)。 3.7.x 在负载平衡方面有神秘的错误。

我也面临类似的问题,即使我们的配置没有问题,负载平衡也无法在版本 (3.7.5) 上正常工作。 pgpool 随机 我们甚至联系 pgpool 开发团队来解决这个问题,但他们找不到根本原因。您可以在下面的链接中查看详细信息。

https://www.pgpool.net/mantisbt/view.php?id=435 .

通过升级到 4.0.0 版,这个问题得到了很好的解决。

关于postgresql - 当复制落后于备用节点时,Pgpool 在备用节点而不是主节点上执行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53071034/

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