业务报错:terminating connection due to administrator command原因总结如下
- session_timeout
查看报错的CN日志,如果有session unused timeout这样的日志,说明是会话超时导致的。
解决办法:
a) 连接CN查看超时时间,show session_timeout;
b) 将session_timeout设置为0: set session_timeout=0; 该方式设置只对当前会话生效。如果想永久生效,需要使用如下命令进行设置:
gs_guc reload -Z coordinator -Z datanode -N all -I all -c “session_timeout=0”
- 线程收到SIGTERM信号
a) 集群停止shutdown,ps ux查看gaussdb启动时间可以确认是不是该情况;
b) 强制清理连接clean connection force:
这种情况不仅会清理idle连接,也会清理active连接
c) 调用终止服务线程函数pg_terminate_backend(pid)。8.1上版本会在CN日志中打印pg_terminate_backend相关信息。有以下几种可能:
1)用户自己调用该接口,或其他脚本后台检测后杀掉。
2) 测磁盘超过阈值(默认90%)场景下,会调用命令“select pg_terminate_backend(pid) from pg_stat_activity where usesysid <> 10”终止当前CN上所有非omm用户的SQL,同时打印调用日志“cancel session ok”
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/316558.html