环境
系统平台:Linux x86-64 Red Hat Enterprise Linux 7,Linux x86-64 Red Hat Enterprise Linux 6,银河麒麟U系(CPU飞腾)4
版本:4.5
症状
瀚高数据库在使用psql工具以及jdbc进行远程连接时,在经过一定时间之后报错-致命错误:terminating connection due to client no input timeout。
排查安全参数,hg_clientnoinput = 0;
问题原因
操作系统TCP相关参数设置不正确,数据库沿用操作系统配置,导致TCP保活机制未生效。
解决方案
数据库做如下配置后,问题解决:
#以下参数默认值都为0,表示延用服务器的配置情况。
tcp_keepalives_idle = '60'
tcp_keepalives_interval = '20'
tcp_keepalives_count = '10'
参数相关说明:
-
tcp_keepalives_idle
(integer
) 规定在操作系统向客户端发送一个TCP keepalive消息后无网络活动的时间总量。 如果指定值时没有单位,则以秒为单位。值0(默认值)表示选择操作系统默认值。 指定不活动多少秒之后通过 TCP 向客户端发送一个 keepalive 消息。 0 值表示使用默认值。 这个参数只有在支持TCP_KEE