postgresql 数据库出现 autovacuum:VACUUM xxoo.xxoo (to prevent wraparound)
生活随笔
收集整理的这篇文章主要介绍了
postgresql 数据库出现 autovacuum:VACUUM xxoo.xxoo (to prevent wraparound)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
os: centos 7.4
db: postgresql 10.10
postgresql 查看 pg_stat_activity 有时会看到 autovacuum:VACUUM xxoo.xxoo(to prevent wraparound) ,这个其实是预防事务ID回卷,原因是 postgresql 采用 32bit 事务id。
版本
# cat /etc/centos-release CentOS Linux release 7.4.1708 (Core) # # su - postgres Last login: Sat Oct 26 22:55:25 CST 2019 on pts/0 $ $ psql -c "select version();"version ----------------------------------------------------------------------------------------------------------PostgreSQL 10.10 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), 64-bit (1 row)when
当表的 age 大于 autovacuum_freeze_max_age时,autovacuum 进程回自动对该表进行 freeze。
autovacuum:VACUUM public.tmp_t0 (to prevent wraparound)默认的 autovacuum_freeze_max_age 值为 200000000
postgres=# select name,setting from pg_settings where name like 'autovacuum%' order by name;name | setting -------------------------------------+-----------autovacuum | onautovacuum_analyze_scale_factor | 0.1autovacuum_analyze_threshold | 50autovacuum_freeze_max_age | 200000000autovacuum_max_workers | 3autovacuum_multixact_freeze_max_age | 400000000autovacuum_naptime | 60autovacuum_vacuum_cost_delay | 20autovacuum_vacuum_cost_limit | -1autovacuum_vacuum_scale_factor | 0.2autovacuum_vacuum_threshold | 50autovacuum_work_mem | -1 (12 rows) SELECT c.oid::regclass as table_name,greatest(age(c.relfrozenxid),age(t.relfrozenxid)) as age from pg_class cLEFT OUTER JOIN pg_class t ON c.reltoastrelid = t.oid WHERE c.relkind IN ('r', 'm') order by 2 desc ; SELECT datname, age(datfrozenxid) FROM pg_database;参考:
https://www.postgresql.org/docs/10/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND
总结
以上是生活随笔为你收集整理的postgresql 数据库出现 autovacuum:VACUUM xxoo.xxoo (to prevent wraparound)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 八大排序 详解(下)——指向函数的指针
- 下一篇: 4月22 mysql常用函数