PostgreSQL执行超时的问题
PostgreSQL执行超时的问题
使用背景
最近在使用PostgreSQL的时候,在执行一些数据库事务的时候,先后出现了statement timetout 和idle-in-transaction timeout的问题,导致数据库操作失败。
经研究查找,PostgreSQL有关于SQL语句执行超时和事务执行超时的相关配置,而默认超时时间是10000毫秒,即10秒钟的时间,这样会导致执行时间稍长的任务执行失败。可以通过修改PostgreSQL服务器配置文件的方式修改默认配置。
参数说明
statement_timeout
statement_timeout 在 postgresql 被用来控制语句执行时长,单位是ms。
$ vi postgresql.conf
#statement_timeout = 0 # in milliseconds, 0 is disabled
- 1
- 2
默认是0,表示语句可以一直执行下去。
如果设置为10000,那就意味着语句最多可以执行 10000ms = 10s。
建议设置为0,禁用该参数。
idle_in_transaction_session_timeout
PostgreSQL 9.6版本开始支持自动查杀超过指定时间的 idle in transaction 空闲事务连接,用于清理应用代码中忘记关闭已开启的事务,或者系统中存在僵死进程等。
idle_in_transaction_session_timeout 在 postgresql 被用来控制事务执行时长,单位是ms。
$ vi postgresql.conf
#idle_in_transaction_session_timeout = 0 # in milliseconds, 0 is disabled
- 1
- 2
默认是0,表示语句可以一直执行下去。超时会报 FATAL: terminating connection due to idle-in-transaction timeout。
修改方法
查找配置
通过命令查找到postgresql配置文件的位置,用vi进行编辑。
find / -name "postgresql.conf"
vi /var/lib/pgsql/9.6/data/postgresql.conf

修改参数
进入vi编辑界面,可以通过vi查找命令定位到相关参数,修改成合适的时间,保存退出。
:/statement_timeout

重启配置
通过以下命令,查找pg_ctl的位置,然后执行 pg_ctl reload重新加载配置。
find / -name "pg_ctl" /usr/pgsql-9.6/bin/pg_ctl reload

PG_CTL用法
启动服务器
启动服务器:
$ pg_ctl start
启动服务器的一个例子,等到服务器启动了才退出:
$ pg_ctl -w start
服务器使用 5433 端口,而且不带 fsync 运行,使用:
$ pg_ctl -o "-F -p 5433" start
停止服务器
$ pg_ctl stop
使用 -m 选项停止服务器允许用户控制如何关闭后端。
重启服务器
这个命令几乎等于先停止服务器然后再启动它,只不过 pg_ctl 保存并重新使用上一次运行服务器的命令行参数。重启服务器的最简单的方法是:
$ pg_ctl restart
重启服务器,等待其停止和重启:
$ pg_ctl -w restart
使用 5433 端口重启并且重启后关闭 fsync :
$ pg_ctl -o "-F -p 5433" restart
显示服务器状态
下面是来自 pg_ctl 的状态输出的例子:
$ pg_ctl statuspg_ctl: server is running (pid: 13718)
Command line was:
/usr/local/pgsql/bin/postgres '-D' '/usr/local/pgsql/data' '-p' '5433' '-B' '128'
这就是在 restart 模式中被调用的命令行。
作者:朝雨忆轻尘
出处:https://www.cnblogs.com/xifengxiaoma/
版权所有,欢迎转载,转载请注明原文作者及出处。
PostgreSQL执行超时的问题的更多相关文章
- C# 给某个方法设定执行超时时间 C#如何控制方法的执行时间,超时则强制退出方法执行 C#函数运行超时则终止执行(任意参数类型及参数个数通用版)
我自己写的 /// <summary> /// 函数运行超时则终止执行(超时则返回true,否则返回false) /// </summary> /// <typepara ...
- 转 C# 给某个方法设定执行超时时间
在某些情况下(例如通过网络访问数据),常常不希望程序卡住而占用太多时间以至于造成界面假死. 在这时.我们可以通过Thread.Thread + Invoke(UI)或者是 delegate.Begin ...
- Java基础知识强化之网络编程笔记25:Android网络通信之 Future接口介绍(Java程序执行超时)
1. Future接口简介 在Java中,如果需要设定代码执行的最长时间,即超时,可以用Java线程池ExecutorService类配合Future接口来实现. Future接口是Java标准API ...
- 关于PHP执行超时的问题
PHP配置文件的参数max_execution_time表示脚本执行超时时间 max_execution_time=0表示不限制 max_execution_time=2表示执行两秒后终止,同时报错F ...
- [C#.net]SqlDataAdapter 执行超时已过期 完成操作之前已超时或服务器未响应
随着数据库数据的不断增大,查询时间也随之增长.而客户端与数据库连接时间以及命令的执行时间都是有限的.默认为30s.所以在查询数据的时候,程序会出现 “超时时间已到.在操作完成之前超时时间已过或服务器未 ...
- Java程序执行超时——Future接口介绍
在Java中,如果需要设定代码执行的最长时间,即超时,可以用Java线程池ExecutorService类配合Future接口来实现. Future接口是Java标准API的一部分,在java.uti ...
- C# 方法执行超时处理
封装了一个方法,用于处理一些需要判断是否执行超时了的操作 internal static T TimeoutCheck<T>(int ms, Func<T> func) { v ...
- DbCommand :执行超时已过期。完成操作之前已超时或服务器未响应。
问题:“Timeout 时间已到.在操作完成之前超时时间已过或服务器未响应.”的解决方法 在一个链接数据库的时候,老是出现超时的错误:执行超时已过期.完成操作之前已超时或服务器未响应. 就是给这个链接 ...
- 【故障公告】再次遭遇SQL语句执行超时引发网站首页访问故障
非常抱歉,昨天 18:40~19:10 再次遭遇上次遇到的 SQL 语句执行超时引发的网站首页访问故障,由此您带来麻烦,请您谅解. 上次故障详见故障公告,上次排查下来以为是 SQL Server 参数 ...
随机推荐
- php一些方法说明
var_dump():判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型.此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值.数组将递归展开值,通过缩进显 ...
- (最长回文串 模板) 最长回文 -- hdu -- 3068
http://acm.hdu.edu.cn/showproblem.php?pid=3068 最长回文 Time Limit: 4000/2000 MS (Java/Others) Memory ...
- MessageBox的常见用法
一 函数原型及参数 function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integer; hWnd:对话框父窗口句柄, ...
- EF学习笔记-CODE FIRST-约定
首先EF对关系数据库的映射遵循如下规则: Fluent API 配置 override 数据注释 override 约定 System.Data.Entity.ModelConfiguration.C ...
- maven下@override标签失效
经常遇见此问题,现记录如下,以备下次查阅. 在pom文件添加配置: <plugin> <groupId>org.apache.maven.plugins</groupId ...
- 设计模式之组合模式(Composite Pattern)
一.什么是组合模式? 组合模式提供了一种层级结构,并允许我们忽略对象与对象集合之间的差别 调用者并不知道手里的东西是一个对象还是一组对象,不过没关系,在组合模式中,调用者本来就不需要知道这些 二.举个 ...
- AbpZero之企业微信---登录(拓展第三方auth授权登录)---第三步:需要注意事项
1.AbpZero的auth登录会在数据库中的AbpUserLogins表会根据你登录的ProviderKey和Provider来生成生成一条记录,ProviderKey在表中是唯一的: 2.要登录成 ...
- 浏览器报ScriptResource.axd异常
新拷贝的一份管理后台代码,部署在另一台服务器上时,查看浏览器调控制台,发现有几个红色报错.这些错误导致网站的部分功能无法使用. 主要错误有: 1.“Sys”未定义 2.asp.net ajax 客户端 ...
- Socket网络编程(TCP/IP/端口/类)和实例
Socket网络编程(TCP/IP/端口/类)和实例 原文:C# Socket网络编程精华篇 转自:微冷的雨 我们在讲解Socket编程前,先看几个和Socket编程紧密相关的概念: TCP/IP层次 ...
- C++ const 和static的总结以及使用
一 static的使用 (作用域和存储方式) 1.作用域---------->隐藏 静态函数跟静态全局变量的作用类似 (静态函数不能被其它文件所用: 其它文件中可以定义相同名字的函数,不会发生 ...