瀚高資料庫
目錄
環境
症狀
問題原因
解決方案
環境
系統平台: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 值表示使用預設值。 這個參數隻有在支援
或等效套接字選項的系統或 Windows 上才可以使用。在其他系統上,它必須為零。在通過 Unix 域套接字連接配接的會話中,這個參數被忽略并且總是讀作零。TCP_KEEPIDLE
-
(tcp_keepalives_interval
integer
)
規定未被用戶端确認收到的TCP keepalive消息應重新傳輸的時間長度。 如果指定值時沒有機關,則以秒為機關。值0(預設值)表示選擇作業系統預設值。 這個參數隻有在支援
或等效套接字選項的系統或 Windows 上才可以使用。在其他系統上,必須為零。在通過 Unix域套接字連接配接的會話中,這個參數被忽略并總被讀作零。TCP_KEEPINTVL
-
(tcp_keepalives_count
integer
)
指定伺服器到用戶端的連接配接被認為中斷之前可以丢失的TCP keepalive消息的數量。值0(預設值)表示選擇作業系統預設值。 這個參數隻有在支援
或等效套接字選項的系統上才可以使用。在其他系統上,必須為零。在通過 Unix 域套接字連接配接的會話中,這個參數被忽略并總被讀作零。TCP_KEEPCNT
-
(tcp_user_timeout
integer
)
指定傳輸的資料在TCP連接配接被強制關閉之前可以保持未确認狀态的時間量。 如果指定值時沒有機關,則以毫秒為機關。值0(預設值)表示選擇作業系統預設值。 這個參數隻有在支援
的系統上才被支援;在其他系統上,它必須為零。 在通過Unix-domain 套接字連接配接的會話中,此參數将被忽略并且始終讀取為零。TCP_USER_TIMEOUT
[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