You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure VM上PostgreSQL数据库层连接丢失 点图层闲置后数据消失问题

故障根因与修复方案

触发原因

该问题核心为空闲数据库连接被静默中断导致空间查询失败,三个常见触发点:

  • Azure 公网IP默认TCP空闲超时阈值为4分钟,无流量的长连接会被网络层静默丢弃,不会向上层应用返回断连通知
  • PostgreSQL 9.5 原生TCP保活参数tcp_keepalives_idle默认值为7200秒(2小时),无法在Azure超时阈值前触发保活
  • Tatuk Viewer默认复用初始建立的数据库连接执行空间查询,连接失效后缩放触发的空间范围查询无返回结果,图层渲染为空,且无自动重连逻辑

修复步骤

数据库侧配置调整

编辑PostgreSQL配置文件postgresql.conf,修改以下TCP保活参数:

# 空闲120秒后开始发送保活包
tcp_keepalives_idle = 120
# 保活包发送间隔30秒
tcp_keepalives_interval = 30
# 3次无响应后标记连接失效
tcp_keepalives_count = 3

修改后执行pg_ctl reload命令重载配置,无需重启数据库实例即可生效。

Azure网络侧配置调整

登录Azure门户,进入对应虚拟机的公网IP配置页,将空闲超时参数调整为最大值30分钟,进一步降低连接被中断的概率。

客户端适配调整

打开Tatuk Viewer的PostGIS连接配置,启用查询前验证连接有效性选项;如果版本无该选项,可在连接字符串中追加keepalives=1参数强制启用客户端TCP保活。

验证方式

配置完成后加载目标点图层,闲置10分钟以上执行缩放、平移操作,确认点位正常渲染即修复完成。

内容的提问来源于stack exchange,提问作者Bruno Bernardi Neves

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 03:39:00