gpt4 book ai didi

postgresql 复制 |从属/恢复服务器出现故障时应用程序卡住

转载 作者:行者123 更新时间:2023-11-29 13:19:56 27 4
gpt4 key购买 nike

我支持由小型企业托管的应用程序,基于 Web 的 ROR 应用程序在后端使用 pgsql 数据库。

Postgres 设置为复制到异地备用服务器,据我所知它工作正常,当我查询远程服务器时它显示它正在恢复等。

从“主”服务器:

postgres=# table pg_stat_replication ;
pid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start
| state | sent_location | write_location | flush_location | replay_location | sync_priority | sync_state
-------+----------+---------+------------------+----------------+-----------------+-------------+-----------------------
--------+-----------+---------------+----------------+----------------+-----------------+---------------+------------
18660 | 1281085 | rep | postgresql2 | 192.168.81.155 | | 43824 | 2017-05-07 11:42:43.15
0057-04 | streaming | 3/B5243418 | 3/B5243418 | 3/B5243418 | 3/B5243150 | 1 | sync
(1 row)

...在“奴隶”上:

postgres=# select pg_is_in_recovery();
pg_is_in_recovery
-------------------
t
(1 row)

postgres=# select now() - pg_last_xact_replay_timestamp() AS replication_delay;
replication_delay
-------------------
01:02:14.885511
(1 row)

我了解我必须将我的远程从属数据库提升为主角色所涉及的过程,但我似乎遇到的问题是,现在有 2 或 3 次与远程从属服务器的网络链接出现故障,并且应用程序完全“卡住”(例如页面加载但不允许用户登录),尽管主数据库仍在运行。我启用了 wal 归档以确保当发生这样的事情时,数据将被保留,直到链接恢复并且可以发送事务日志......但我不明白为什么我的主 pgsql 实例似乎锁定,因为从属实例脱机...有点破坏复制的整个概念,所以我认为我一定是做错了什么?

最佳答案

最可能的解释是您正在使用只有两个节点的同步复制。

synchronous_standby_names在主服务器上设置?

如果唯一的同步备用服务器不可用,则没有事务可以在主服务器上提交,并且数据修改事务将“挂起”,这可以解释您观察到的行为。

对于同步复制,您至少需要两个从站。

关于postgresql 复制 |从属/恢复服务器出现故障时应用程序卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43855065/

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