我支持由小型企业基于Web的ROR应用程序托管的应用程序,该应用程序在后端使用pgsql数据库。postgresql复制|当从服务器/恢复服务器出现故障时,应用程序会冻结
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)
我了解所涉及我应该有促进我的远程从DB掌握角色的过程中,BU我似乎遇到的问题是,在2到3次现在,到远程从属服务器的网络连接已经断开,应用程序完全“冻结”(例如,页面加载但不允许用户登录),尽管主数据库仍处于运行状态。我有沃尔沃存档启用,以确保当这样的事情发生时,数据被保留,直到链接恢复和事务日志可以发送......但我不明白为什么我的主pgsql实例似乎锁定,因为奴隶实例进入脱机状态......有一种打败了复制的整个概念,所以我认为我一定是做错了什么?
请在发生“不允许用户登录”时提供日志错误。还有 - 一小时的延迟足以让我担心我认为 –
据我所知,这不是一个小时的“滞后”,而只是因为任何交易已经进入数据库。 – tmowbray