5

数据库使用psql及jdbc进行远程连接,不定时自动断开的解决办法

 2 years ago
source link: https://blog.51cto.com/u_13646489/5513970
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

数据库使用psql及jdbc进行远程连接,不定时自动断开的解决办法

原创

瀚高实验室 2022-07-26 11:10:31 博主文章分类:PostgreSQL通用知识 ©著作权

文章标签 默认值 套接字 linux 文章分类 MySQL 数据库 阅读数164

瀚高数据库

系统平台: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_KEEPIDLE​或等效套接字选项的系统或 Windows 上才可以使用。在其他系统上,它必须为零。在通过 Unix 域套接字连接的会话中,这个参数被忽略并且总是读作零。
  • tcp_keepalives_interval​ (​integer​)
    规定未被客户端确认收到的TCP keepalive消息应重新传输的时间长度。 如果指定值时没有单位,则以秒为单位。值0(默认值)表示选择操作系统默认值。 这个参数只有在支持​TCP_KEEPINTVL​或等效套接字选项的系统或 Windows 上才可以使用。在其他系统上,必须为零。在通过 Unix域套接字连接的会话中,这个参数被忽略并总被读作零。
  • tcp_keepalives_count​ (​integer​) 指定服务器到客户端的连接被认为中断之前可以丢失的TCP keepalive消息的数量。值0(默认值)表示选择操作系统默认值。 这个参数只有在支持​TCP_KEEPCNT​或等效套接字选项的系统上才可以使用。在其他系统上,必须为零。在通过 Unix 域套接字连接的会话中,这个参数被忽略并总被读作零。
  • tcp_user_timeout​ (​integer​) 指定传输的数据在TCP连接被强制关闭之前可以保持未确认状态的时间量。 如果指定值时没有单位,则以毫秒为单位。值0(默认值)表示选择操作系统默认值。 这个参数只有在支持​TCP_USER_TIMEOUT​的系统上才被支持;在其他系统上,它必须为零。 在通过Unix-domain 套接字连接的会话中,此参数将被忽略并且始终读取为零。

服务器中相关的配置信息的方法:

[root@Server3 ~]# cat /proc/sys/net/ipv4/tcp_keepalive_time
[root@Server3 ~]# cat /proc/sys/net/ipv4/tcp_keepalive_intvl

[root@Server3 ~]# cat /proc/sys/net/ipv4/tcp_keepalive_probes

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK