暂无图片
pg中snapshot too old,如何理解??
我来答
分享
暂无图片 匿名用户
pg中snapshot too old,如何理解??

snapshot too old 如何理解??

有没有相关的真实的操作实验来更好的理解和说明

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
szrsu
暂无图片

pg中是通过vacuum回收脏数据,也就是我们常说的dead tuple。但是有时候长事物会持有一些dead tuple很长时间,这样就不能及时做vacuum回收脏数据。这样就使得数据库中的表很容易膨胀,并占用额外的存储空间。从而还会导致相关SQL操作性能下降。所以为了避免以上结果,从9.6引入了old_snapshot_threshold参数。

当old_snapshot_threshold默认值为-1,是关闭的。当我们设置该值为具体时间的时候,vacuum 就不会等待长时间的查询结束,会继续对dead tuple进行处理,如果刚好有事物正好在使用这些dead tuple,那么就会报错snapshot too old。

PostgreSQL14版本中添加一个插件,可以在old_snapshot_threshold关闭的时候(设置为-1),查看映射的XID。

可以参考这个 https://postgreshelp.com/postgresql-14-snapshot-too-old/

暂无图片 评论
暂无图片 有用 0
打赏 0
2022-11-29
回答交流
Markdown


请输入正文
提交
相关推荐
pg_wal是恢复时候才有用吗?
回答 1
主备流复制以及逻辑复制也是基于pgwal的
postgreSQL 数据库忽略大小写查询的问题如何解决?
回答 1
已采纳
查询的时候可以加“”更多细节参考https://blog.csdn.net/weixin39540651/article/details/117361076
postgresql中死锁怎么处理?
回答 1
所有数据库的死锁都是一样处理。保证事务中的处理顺序都一致。还有就是执行的效率要高。
在PostgreSQL中最大的逻辑存储单位是什么。
回答 2
已采纳
D 表空间
postgreSQL 主从每日备份是备份主还是从?
回答 1
1)生产建议使用从库进行备份。数据备份的方式有:pgdump、pgdumpall、pgrman、barman、pgbasebackup等2)日志备份可以通过:从库设置archivemodealways
pcm认证与pgcm认证,有啥区别
回答 1
已采纳
PGCM(PostgreSQLCertifiedMaster),是中国PostgreSQL技术能力认证体系的最高级别,代表PostgreSQL数据库认证大师。要考PGCM必先通过PGCA、PGCP。P
PostgreSQL 一个存储过程中,多个子存储过程,怎么让它们出错了还继续执行?
回答 2
子存储过程出错时,使用beginendexception异常处理机制可以决定是否继续执行后续的子存储过程或回滚整个事务。
postgresql是哪种数据库架构 A 单进程多线程 B 多进程多线程 C 多进程单线程 D 单进程单线程
回答 1
单线程多进程
如果给测试服的一个表加了几个字段,如何自动同步到正式服的同一张表呢?
回答 2
已采纳
自动不现实。要么手工,要么有一套数据库管理系统,由人工在这个系统上操作。
postgresql中哪些指标可以告诉我服务器配置错误?
回答 2
参数文件配置错误查看pgfilesettings,客户端认证配置错误查看pghbafilefules