PostgreSQL9.6+新增空闲事务自动查杀功能

  • 时间:
  • 浏览:1

此时查看事物情况,可不需用看到 state 为 idle in transaction,此时就触发了上述参数控制的内容。若在超时时间内继续事物操作,则无任何报错。可是我 我 一旦超过超时时间。事物就会被强制中断。

开启两个事物,创建一张表插入四根数据

该参数在冗杂的应用场景中意味会满足客户的业务需求。具体的超时时间需用客户根据另一方的业务类型来做出选则。可是我 我 宜多不宜少,过少的话会将你这个 正在进行的事物回滚,意味出错。越来越来越多的话只会让清理慢你这个 。影响相对小你这个 。

修改此参数不想重启数据库,reload即可。应用连接可是我想重连

设置前一天在命令行可查看该参数设置

PostgreSQL9.6 版本较前一天版本新增了两个参数:idle_in_transaction_session_timeout ,该参数是为了自动查杀存在的空闲事物

idle in transaction。下面朋友完正了解下你你这个 参数

即表示意味启用

朋友听候20s至事物超时。

再在原事物中随便执行两个命令

可不需用发现意味报错

你你这个 参数的设置,可不需用先仔细观察另一方系统中不是突然 存在空闲事物,可是我 我 存在的多,可不需用设置一下

意味另一方的业务逻辑上,在事物开启后需用听候你这个 时间的话。需用考虑下你你这个 超市设置哪几个离米 ,根据另一方业务而定。

意味设置的过短,意味会对你这个 业务产生影响

PG在日常使用中会有 ‘idle in transaction’ 应用程序池池,引发你你这个 应用程序池池的意味一般都是 代码中忘记关闭已开启的事物,或是系统中存在僵死的应用程序池池等。

‘idle in transaction’ 会阻止vacuum,造成数据膨胀,又有意味引起PG的事物ID wraparound的危险

为补救你你这个 大大问题 。9.6新增超时自动查杀空闲事物的功能

默认:idle_in_transaction_session_timeout = 1000

单位毫秒,也可是我 我 20秒就会自动查杀空闲事物

朋友在看下前一天朋友创建的表和插入的四根数据,意味不存在了,说明此参数杀事物时采用回滚的土最好的法律法律依据

[TOC]

该参数并都是默认开启,需用手动配置并能开启此功能。在postgresql.conf文件中找到添加 一行